基于注解的springboot+mybatis的多数据源组件的实现

基于注解的springboot+mybatis的多数据源组件的实现

    通常业务开发中,我们会使用到多个数据源,比如,部分数据存在mysql实例中,部分数据是在oracle数据库中,那这时候,项目基于springboot和mybatis,其实只需要配置两个数据源即可,只需要按照

dataSource – SqlSessionFactory – SqlSessionTemplate配置好就可以了。

如下代码,首先我们配置一个主数据源,通过@Primary注解标识为一个默认数据源,通过配置文件中的spring.datasource作为数据源配置,生成SqlSessionFactoryBean,最终,配置一个SqlSessionTemplate。

 1 @Configuration
 2 @MapperScan(basePackages = "com.xxx.mysql.mapper", sqlSessionFactoryRef = "primarySqlSessionFactory")
 3 public class PrimaryDataSourceConfig {
 4 
 5     @Bean(name = "primaryDataSource")
 6     @Primary
 7     @ConfigurationProperties(prefix = "spring.datasource")
 8     public DataSource druid() {
 9         return new DruidDataSource();
10     }
11 
12     @Bean(name = "primarySqlSessionFactory")
13     @Primary
14     public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {
15         SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
16         bean.setDataSource(dataSource);
17         bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
18         bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
19         return bean.getObject();
20     }
21 
22     @Bean("primarySqlSessionTemplate")
23     @Primary
24     public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sessionFactory) {
25         return new SqlSessionTemplate(sessionFactory);
26     }
27 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 基于注解的springboot+mybatis的多数据源组件的实现