spring boot配置多数据源后,mybatisPlus全局配置失效问题解决

通过druid配置多数据源后,发现mybatis-plus.global-config配置通通失效了

不生效原因:配置多数据源后,数据源对应的SqlSessionFactoryBean是单独设置的,没有加载在properties内的config配置

解决方案:重新将配置set到SqlSessionFactoryBean

配置引入

    /** 全局自定义配置 */
    @Bean(name = "globalConfig")
    @ConfigurationProperties(prefix = "mybatis-plus.global-config")
    public GlobalConfig globalConfig(){
        return new GlobalConfig();
    }

set配置

    @Autowired
    @Qualifier("globalConfig")
    private GlobalConfig globalConfig;


    @Bean(name = "tianjiSqlSessionFactory")
    public SqlSessionFactory tianjiSqlSessionFactory(@Qualifier("tianji") DataSource dataSource) throws Exception {
        /** 当使用myBatis-plus的时候需要使用 MybatisSqlSessionFactoryBean */
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        /**当使用多数据源时,mybatisPlus默认配置将会失效,需要单独将其注入数据源中 */
        bean.setPlugins(plugins);
        /** 设置全局配置 */
        bean.setGlobalConfig(globalConfig);
        return bean.getObject();
    }

druid启动自动连接数据库方法

druid多数据源启动时,默认不会自动连接数据库的,当第一次从连接池中去获取连接的时候,就会进行初始化,因此表现为第一次请求需要先建立initial-size个连接,导致首次请求返回速度较慢,这时需要设置一个初始化方法,已解决这个问题:

@Bean(name = "tianji",initMethod = "init",destroyMethod = "close")
@ConfigurationProperties(prefix = "spring.datasource.druid.tianji")
public DataSource dataSource() {
    return DruidDataSourceBuilder.create().build();
}

init方法已经内置在druid中,IDEA如有报红忽略即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值