我正在尝试在Spring Boot with JPA 2.1.4.RELEASE
中正确设置多个数据源。
设置如下所示:
DB1
和DB2
。 DB1
有ABC
表,而DB2
有XYZ
表。DB1
和DB2
;和 PROD2 也有DB1
和DB2
。到目前为止,我已经成功完成了 DEV 设置。我有2种配置:
DB1
DB2
然后我有2个存储库:
ABC
的{{1}} DB1
的{{1}} 现在在 PROD 中,我需要使用Spring Boot在单个事务中将数据写入两个服务器( PROD1 和 2 )。
我可以看到一个示例here,该示例试图提供某种解决方案,但是问题是它将要求创建重复的Dao和Service类,我认为这不是解决此问题和需要的好方法了解如何在application.properties和DataSourceConfig.java
中正确配置这些属性application-dev.properties
XYZ
application-prod.properties
DB2
Db1DataSourceConfig.java
datasource.db1.url=jdbc:sqlserver://localhost:1234;databaseName=db1;
datasource.db1.username=user
datasource.db1.password=pwd
datasource.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
datasource.db2.url=jdbc:sqlserver://localhost:1234;databaseName=db2;
datasource.db2.username=user
datasource.db2.password=pwd
datasource.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
Db2DataSourceConfig.java
datasource.prod1.db1.url=jdbc:sqlserver://prodserver1:1234;databaseName=db1;
datasource.prod1.db1.username=user
datasource.prod1.db1.password=pwd
datasource.prod1.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
datasource.prod1.db2.url=jdbc:sqlserver://prodserver1:1234;databaseName=db2;
datasource.prod1.db2.username=user
datasource.prod1.db2.password=pwd
datasource.prod1.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
datasource.prod2.db1.url=jdbc:sqlserver://prodserver2:1234;databaseName=db1;
datasource.prod2.db1.username=user
datasource.prod2.db1.password=pwd
datasource.prod2.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
datasource.prod2.db2.url=jdbc:sqlserver://prodserver2:1234;databaseName=db2;
datasource.prod2.db2.username=user
datasource.prod2.db2.password=pwd
datasource.prod2.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver