Files
2022-12-08 09:25:13 -08:00

63 lines
1.9 KiB
Plaintext

= Multiple DataSources Sample Task
This is a Spring Boot application that utilizes two DataSources and explicitly configures
which one to be used for the Spring Cloud Task repository.
== Requirements:
* Java 17 or Above
== Classes:
* `MultipleDataSourcesApplication` - the Spring Boot Main Application.
* `SampleCommandLineRunner` - the `CommandLineRunner` implementation for this task. It outputs the number of `DataSource` beans found in the context (should be 2).
* `EmbeddedDataSourceConfiguration` - Configures two `DataSource` beans using embedded databases.
* `ExternalDataSourceConfiguration` - Configures two `DataSource` beans using external databases.
* `CustomTaskConfigurer` - Uses a Spring `@Qualifier` to specify the correct `DataSource` to use.
== Build:
[source,shell]
----
mvn clean package
----
== Execute sample using 2 embedded databases (default):
[source,shell]
----
java -jar target/multiple-datasources-3.0.0.jar
----
== Native Build:
[source,shell]
----
mvn -Pnative native:compile
----
== RUn sample using 2 embedded databases (default) with native app:
[source,shell]
----
./target/multiple-datasources
----
== Execute sample using 2 external databases:
Using the `external` profile, users will be able to establish both the default `spring.datasource` data source and a `second.datasource` data source.
For example:
[source,shell,indent=2]
----
export spring_datasource_url=<your db url>
export spring_datasource_username=<your db user name>
export spring_datasource_password=<your db user password>
export spring_datasource_driverClassName=org.mariadb.jdbc.Driver
export second_datasource_url=jdbc:<your db url>
export second_datasource_username=<your db user name>
export second_datasource_password=<your db user password>
export second_datasource_driverClassName=org.mariadb.jdbc.Driver
java -jar target/multiple-datasources-2.3.0-RELEASE.jar --spring.profiles.active=external
----