springboot注解方式加载数据源配置,多个数据源

1、建立连接数据源的bean配置

/**
 * 数据源配置
 */
@Configuration
public class MultiDataSourceConfig {
    @Bean(name = "mojorDB") //主数据源
    @Qualifier("mojorDB")
    @ConfigurationProperties(prefix = "mojordb.datasource") //读取yml配置,初始化数据源
    public DataSource wxBankDB() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "subDB") //另一个数据源
    @Qualifier("subDB")
    @ConfigurationProperties(prefix = "subdb.datasource") //读取yml配置,初始化数据源
    public DataSource mobileBankDB() {
        return DataSourceBuilder.create().build();
    }
}

2、yml 配置

mojordb:
  datasource:
    jdbc-url: jdbc:oracle:thin:@//localhost:1521/orcl
    username: leo
    password: leo
    driverClassName: oracle.jdbc.OracleDriver
    maximumPoolSize: 30
    idleTimeout: 10000

subdb:
  datasource:
    jdbc-url: jdbc:oracle:thin:@//localhost:1521/sub
    username: messi
    password: messi
    driverClassName: oracle.jdbc.OracleDriver
    maximumPoolSize: 10
    idleTimeout: 10000

3、配置数据源工厂,事务管理器,mapper扫描路径,及SqlSessionTemplate

@Configuration
@MapperScan(basePackages = "com.leo.base.annotation.dao.mapper", sqlSessionTemplateRef  = "majorDBSqlSessionTemplate")
public class WXDBSqlSessionTemplate {
    @Bean(name = "majorDBSqlSessionFactory")
    @Primary
    public SqlSessionFactory primarySqlSessionFactory(@Qualifier("majorDB") DataSource dataSource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/leo/*/*.xml"));
        //分页插件
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("reasonable", "true");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("returnPageInfo", "check");
        properties.setProperty("params", "count=countSql");
        pageHelper.setProperties(properties);
        //添加插件
        bean.setPlugins(new Interceptor[]{pageHelper});
        return bean.getObject();
    }

    //配置声明式事务管理器
    @Bean(name = "majorDBTransactionManager")
    @Primary
    public PlatformTransactionManager primaryTransactionManager(@Qualifier("majorDB") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "majorDBSqlSessionTemplate")
    @Primary
    public SqlSessionTemplate primarySqlSessionTemplate(
            @Qualifier("majorDBSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值