配置mybatis多数据源,主要提供SqlsessionFactory实例和sqlSessionTemplate实例,其中SqlsessionFactory用于操作数据源,sqlSessionTemplate管理线程是否安全
配置多个数据源
对应的配置数据进行加载
/**
* mybatis 的数据源的配置
*/
@Configuration
@MapperScan(value = "com.mybatisdatasources.mybatisdatasources.BookMapper.BookMapper", sqlSessionFactoryRef = "sqlSessionFactoryBean1")
public class MyBatisConfigOne {
@Resource(name = "dataSourceOne")
DataSource dataSource;
@Bean
SqlSessionFactory sqlSessionFactoryBean1() throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
return bean.getObject();
}
@Bean
SqlSessionTemplate sqlSessionTemplate2() throws Exception {
return new SqlSessionTemplate(sqlSessionFactoryBean1());
}
}
/**
* mybatis 的数据源的配置
*/
@Configuration
@MapperScan(value = "com.mybatisdatasources.mybatisdatasources.BookMapper.BookMapper2", sqlSessionFactoryRef = "sqlSessionFactoryTwo")
public class MyBatisConfgTwo {
@Resource(name = "dataSourceTwo")
DataSource dataSource;
@Bean
SqlSessionFactory sqlSessionFactoryTwo() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
return factoryBean.getObject();
}
/**
* 用于设置守护mybatis中的sqlsession 的线程安全
*
* @return
* @throws Exception
*/
@Bean
SqlSessionTemplate sqlSessionTemplate() throws Exception {
return new SqlSessionTemplate(sqlSessionFactoryTwo());
}
}