数据源1
@Configuration
@MapperScan(basePackages = "com.xx.mapper",sqlSessionFactoryRef = "db1SqlSessionFactory")
public class DataSourceDb1Config {
private static final String MAPPER_LOCAL = "classpath:com/xx/xx/mapper/xml/*.xml";
@ConfigurationProperties("spring.datasource.db1")
@Primary
@Bean(name = "db1DataSource")
public DruidDataSource db1DataSource() {
return new DruidDataSource();
}
@Bean(name = "db1TransactionManager")
@Primary
public DataSourceTransactionManager db1TransactionManager() {
return new DataSourceTransactionManager(db1DataSource());
}
@Bean(name = "db1SqlSessionFactory")
@Primary
public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
final MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCAL));
return sessionFactoryBean.getObject();
}
}
数据源2
@Configuration
@MapperScan(basePackages = "com.xx.xx.mapper",sqlSessionFactoryRef = "db2SqlSessionFactory")
public class DataSourceDb2Config {
private static final String MAPPER_LOCAL = "classpath:com/xx/xx/mapper/xml/*.xml";
@ConfigurationProperties("spring.datasource.db2")
@Bean(name = "db2DataSource")
public DruidDataSource db2DataSource() {
return new DruidDataSource();
}
@Bean(name = "db2TransactionManager")
public DataSourceTransactionManager db2rTransactionManager() {
return new DataSourceTransactionManager(db2DataSource());
}
@Bean(name = "db2SqlSessionFactory")
public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
final MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCAL));
return sessionFactoryBean.getObject();
}
}
注意:
1、由于每个config都加了@MapperScan要在启动类上去掉
2、如果要用mybatis-plus的baseMapper要用MybatisSqlSessionFactoryBean