Mybatis使用小技巧-在springboot项目中配置多数据源

574 阅读1分钟

在很多项目中,用到的数据源可能不止一个,这样的话就需要我们掌握配置多数据源的方法了。

@Configuration
@MapperScan(basePackages = "${该数据源对应接口所在的包}",sqlSessionTemplateRef = "SqlSessionTemplate")
public class DataBaseAccess {

    @Bean("datasource")
    @ConfigurationProperties(prefix="${数据源的配置信息}")
    public DataSource setDataSource(){
        return DruidDataSourceBuilder.create().build();
    }

    @Bean("transactionManager")
    public DataSourceTransactionManager setTransactionManager(@Qualifier("datasource") DataSource dataSource){
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean("SqlSessionFactory")
    public SqlSessionFactory setSqlSessionFactory(@Qualifier("datasource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        //这个配置是该数据源对应的mapper地址
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/*.xml"));
        //该bean还可以设置其他配置,配置文件有的这边都可以设置
        return bean.getObject();
    }

    @Bean("SqlSessionTemplate")
    public SqlSessionTemplate setTemplate(@Qualifier("SqlSessionFactory") SqlSessionFactory sqlSessionFactory){
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

上面就是配置多数据源的方法,这样的话mapperscan所扫描的包里面的接口就可以像平时我们用的dao一样使用了。


返回目录