application.yml
1 spring: 2 datasource: 3 db1: 4 type: com.alibaba.druid.pool.DruidDataSource 5 driver-class-name: com.mysql.cj.jdbc.Driver 6 jdbc-url: jdbc:mysql://192.168.188.10:3306/liuxn?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai 7 username: root 8 password: root 9 db2: 10 type: com.alibaba.druid.pool.DruidDataSource 11 driver-class-name: com.mysql.cj.jdbc.Driver 12 jdbc-url: jdbc:mysql://192.168.188.10:3306/liuxn2?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai 13 username: root 14 password: root
java代码配置多个数据源配置
1、DataSource1Config
1 @Configuration 2 @MapperScan(basePackages ="com.xs.beebot.shandong.report.mapper.one",sqlSessionTemplateRef ="oneSqlSessionTemplate" ) 3 public class DataSource1Config { 4 5 @Bean(name = "oneDataSource") 6 @ConfigurationProperties(prefix = "spring.datasource.db1") 7 @Primary 8 public DataSource testDataSource() { 9 return DataSourceBuilder.create().build(); 10 } 11 12 @Bean(name = "oneSqlSessionFactory") 13 @Primary 14 public SqlSessionFactory testSqlSessionFactory(@Qualifier("oneDataSource") DataSource dataSource) throws Exception { 15 SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 16 bean.setDataSource(dataSource); 17 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/one/*.xml")); 18 return bean.getObject(); 19 } 20 21 @Bean(name = "oneTransactionManager") 22 @Primary 23 public DataSourceTransactionManager testTransactionManager(@Qualifier("oneDataSource") DataSource dataSource) { 24 return new DataSourceTransactionManager(dataSource); 25 } 26 27 @Bean(name = "oneSqlSessionTemplate") 28 @Primary 29 public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("oneSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { 30 return new SqlSessionTemplate(sqlSessionFactory); 31 } 32 }
2、DataSource2Config
1 @Configuration 2 @MapperScan(basePackages ="com.xs.beebot.shandong.report.mapper.two",sqlSessionTemplateRef ="twoSqlSessionTemplate" ) 3 public class DataSource2Config { 4 5 @Bean(name = "twoDataSource") 6 @ConfigurationProperties(prefix = "spring.datasource.db2") 7 @Primary 8 public DataSource testDataSource() { 9 return DataSourceBuilder.create().build(); 10 } 11 12 @Bean(name = "twoSqlSessionFactory") 13 @Primary 14 public SqlSessionFactory testSqlSessionFactory(@Qualifier("twoDataSource") DataSource dataSource) throws Exception { 15 SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 16 bean.setDataSource(dataSource); 17 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/two/*.xml")); 18 return bean.getObject(); 19 } 20 21 @Bean(name = "twoTransactionManager") 22 @Primary 23 public DataSourceTransactionManager testTransactionManager(@Qualifier("twoDataSource") DataSource dataSource) { 24 return new DataSourceTransactionManager(dataSource); 25 } 26 27 @Bean(name = "twoSqlSessionTemplate") 28 @Primary 29 public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("twoSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { 30 return new SqlSessionTemplate(sqlSessionFactory); 31 } 32 }
代码使用:
1 @Service 2 public class UserService { 3 4 @Resource 5 private UserMapper userMapper; 6 7 @Resource 8 private LoginMapper loginMapper; 9 10 public List<User> getAll(){ 11 return userMapper.selectByExample(new UserExample()); 12 } 13 14 15 public List<Login> getAllLogin(){ 16 return loginMapper.selectByExample(new LoginExample()); 17 } 18 }