项目中由于需要访问不同的数据库,所以增加了多数据源配置。
单独数据源的时候。在application.yml中,会匹配路径和dev文件中的数据库配置,但是多数据源之后,application.yml中的mybatis会失效
##mybatis
mybatis:
mapperLocations: classpath*:mappers/*/*.xml
configuration:
mapUnderscoreToCamelCase: true
这时候需要增加MybatisConfig和DataSourceConfig 类来对两个数据源进行控制,分清主次数据源和指定数据源配置和路径。
目前多数据源配置是没问题的,但是存在数据库连接8小时后会断开。目前还未解决。
public class MybatisConfig {
@Configuration
@MapperScan(basePackages = {"net.wecash.histore.order.currentGoSysRepository"},
sqlSessionFactoryRef = "sqlSessionFactoryTwo",
sqlSessionTemplateRef ="sqlSessionTemplateTwo" )
public static class DBTwo{
@Autowired
@Qualifier("secondDatasource")
DataSource secondDatasource;
@Bean
public SqlSessionFactory sqlSessionFactoryTwo() throws Exception {
System.out.println("副配");
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(secondDatasource);
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:currentGoSysMappers/*.xml"));
factoryBean.getObject().getConfiguration