Spring Bootconfiguration并使用两个数据源
我是Spring和Spring Boot的新手。 如何configuration和使用两个数据源。 我正在寻找更多没有这个文档页面http://docs.spring.io/spring-boot/docs/1.2.3.BUILD-SNAPSHOT/reference/htmlsingle/#howto-configure-a-datasource
例如,这里是我的第一个数据源。
application.properties
#first db spring.datasource.url = [url] spring.datasource.username = [username] spring.datasource.password = [password] spring.datasource.driverClassName = oracle.jdbc.OracleDriver #second db ...
应用程序类
@SpringBootApplication public class SampleApplication { private static final Logger logger = LoggerFactory.getLogger(SampleApplication.class); public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } @Autowired SampleRepository repo; @PostConstruct public void testDriving(){ logger.debug(repo.findSomeSample("id", "other")); } }
我如何修改application.properties来添加另一个数据源? 我如何自动装入以供不同的回购使用?
干得好
#first db spring.datasource.url = [url] spring.datasource.username = [username] spring.datasource.password = [password] spring.datasource.driverClassName = oracle.jdbc.OracleDriver #second db ... spring.secondDatasource.url = [url] spring.secondDatasource.username = [username] spring.secondDatasource.password = [password] spring.secondDatasource.driverClassName = oracle.jdbc.OracleDriver @Bean @Primary @ConfigurationProperties(prefix="spring.datasource") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix="spring.secondDatasource") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); }
请参阅官方文档
创build多个数据源与创build第一个数据源的工作方式相同。 如果您使用的是JDBC或JPA的默认自动configuration,那么您可能需要将其中的一个标记为@Primary(然后,将通过任何@Autowired注入来获取该configuration)。
@Bean @Primary @ConfigurationProperties(prefix="datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix="datasource.secondary") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); }