通用mapper集成双数据源
一个动态数据源(多数据源动态切换) 一个非动态数据源
非动态
@Configuration
@MapperScan(basePackages = {
"com.company.push.push.**.mapper"}, sqlSessionTemplateRef = "userSqlSessionTemplate")
public class PushMybatisConfig {
@Value("${push.mybatis.mapperLocations}")
private String mainMapper;
@Bean(name = "userDataSource")
@Primary
@ConfigurationProperties(prefix = "push.datasource")
public DataSource userDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "masterTransactionManger")
@Primary
public DataSourceTransactionManager masterTransactionManger(@Qualifier("userDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
@Primary
public SqlSessionFactory userSqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setVfs(SpringBootVFS.class);
bean.setTypeAliasesPackage("com.companyPush");
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
try {
bean.setMapperLocations(resolver.getResources(mainMapper));
return bean.getObject();
} catch (Exception e) {
e.printStackTrace