Spring 要使用多数据源,需要在 Spring 容器中放入多个 DataSource。DataSource 是 javax.sql 包中的一个接口,这个接口有多种实现,常见的有 c3p0 中的 ComboPooledDataSource 连接池,druid 的 DruidDataSource ,都实现了 DataSource 接口。
我们以 druid 举例,通过 @Bean 标签在 Spring 容器中放入多个实例。
多数据源代码如下:
/**
* 多数据源配置
*/
@Configuration
public class DataSourceAutoConfiguration {
/**
* 数据源一,@Primary 修饰,不指定的情况下默认为此数据源
* 多数据源的情况下不指定默认数据源,EntityManagerFactoryBuilder 会报错
*
* @return dataSourceOne
*/
@Bean
@Primary
@ConfigurationProperties("spring.datasource.druid.one")
public DataSource dataSourceOne(