使用SpringBoot+mybatis整合多数据源时的DataSourceConfig文件

本文详细介绍了如何在SpringBoot项目中配置和使用多个数据源,包括数据源的定义、SqlSessionFactory的设置、事务管理器的配置以及SqlSessionTemplate的创建。通过具体代码示例,展示了如何指定主要数据源,并确保项目的顺利启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot整合多数据源dataSourceConfig文件

@Configuration
@MapperScan(basePackages = DataSourceKjunConfig.BASEPACKAGES, sqlSessionFactoryRef = DataSourceKjunConfig.SQLSESSIONFACTORY)
public class DataSourceKjunConfig {

    static final String BASEPACKAGES = "com.kjun.dao.kjun";
    static final String SQLSESSIONFACTORY = "kjunSqlSessionFactory";
    static final String DATASOURCE = "kjunDataSource";
    static final String PREFIX = "spring.datasource.kjun";
    static final String TRANSACTIONMANAGER = "kjunTransactionManager";
    static final String SQLSESSIONTEMPLATE = "kjunSqlSessionTemplate";

    /**
     * 配置数据库kjun的数据源
     * 
     * @return
     */
    @Bean(name = DataSourceKjunConfig.DATASOURCE)
    @Primary//表示以这个数据源为项目启动是的默认数据源,再多数据源项目中,必须确定主要数据源,否则启动时会由于不知道哪个是主要数据源而导致启动失败。
    @ConfigurationProperties(prefix = DataSourceKjunConfig.PREFIX)
    public DataSource kjunDataSource() {
        return DataSourceBuilder.create().build();
    }

    /**
     * 配置对应于数据源kjun的sqlSessionFactory
     * 
     * @param dataSource
     * @return
     * @throws Exception
     */
    @Bean(name = DataSourceKjunConfig.SQLSESSIONFACTORY)
    @Primary
    public SqlSessionFactory kjunSqlSessionFactory(@Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource)
            throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        // 若通过配置文件实现mybatis的整合,需要设置配置文件的地址
//        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
//                .getResources("classpath:com/kjun/mapper/*.xml"));
        return sessionFactoryBean.getObject();
    }

    /**
     * 设置数据库kjun的事务管理器
     * 
     */
    @Bean(name = DataSourceKjunConfig.TRANSACTIONMANAGER)
    @Primary
    public DataSourceTransactionManager kjunTransactionManner(
            @Qualifier(DataSourceKjunConfig.DATASOURCE) DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    /**
     * 创建sqlSessionTemplate
     * 
     */
    @Bean(name = DataSourceKjunConfig.SQLSESSIONTEMPLATE)
    @Primary
    public SqlSessionTemplate kjunSqlSessionTemplate(
            @Qualifier(DataSourceKjunConfig.SQLSESSIONFACTORY) SqlSessionFactory sessionFactory) throws Exception {
        return new SqlSessionTemplate(sessionFactory);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值