我有以下application.properties:
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= ${DATASOURCE_URL}
spring.datasource.username= ${DATASOURCE_USERNAME}
spring.datasource.password= ${DATASOURCE_PASSWORD}
## Other Database
second.datasource.url="jdbc:oracle:thin:@localhost:1521:XE"
second.datasource.username=usr
second.datasource.password=password
second.datasource.driver-class-name=oracle.jdbc.OracleDriver
second.jpa.show-sql=true
## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
spring.jpa.database=default
目前有用的目标和事物:顶部的spring数据源工作正常。我可以将其用于所有主要需求。下面的第二个,将查询旧系统并从中获取数据。
问题:我根本不知道如何使第二个数据源正常工作。我需要获取它以执行查询并获取返回的内容。理想情况下,我希望看到一个可行的示例。我看了几篇博客文章,然后在Google周围搜索,显然我缺少一些重要信息。
答案 0 :(得分:0)
以上是默认设置,spring可以自行找到它。要创建其他数据源,您需要在某个地方设置数据源bean,并从配置中读取值。
最简单的方法是创建一个带有配置注释的类,并为两个数据源定义bean。
我建议使用HikariDataSource,您可以在此处详细了解如何进行设置:https://www.baeldung.com/hikaricp
对于配置,您可以通过自动安装环境并从那里读取属性来使用环境。
例如environment.getProperty(“ second.datasource.url”)
答案 1 :(得分:0)
查看此链接中的说明:https://www.baeldung.com/spring-data-jpa-multiple-databases
1)您需要为每个数据源提供JPA配置,并为每个数据源提供2)独立的实体程序包,并且3)您必须将其中一个数据源指定为主数据库。