zhubaomin
2025-04-11 d1e380d5bc8d6cda7dc26778dd638b3367483ae7
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/multiDataSource/MultiDataSourceConfig.java
New file
@@ -0,0 +1,45 @@
package com.dy.common.multiDataSource;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
/**
 * SpringBoot容器启动时,针对数据源,第二步启动本类:
 * 把第一步形成各数据源定义,注入本类对象multiDataSource属性中,
 * 本类生成SQL会话工厂对象,工厂对象持有事务工厂对象,和各数据源(数据库)表的定义(Mapper.xml)
 */
@Configuration
public class MultiDataSourceConfig {
    @Autowired
    private javax.sql.DataSource multiDataSource;
    @Bean(name = "sqlSessionFactory")
    public MybatisSqlSessionFactoryBean sqlSessionFactory() throws Exception {
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        bean.setTransactionFactory(new MultiDataSourceTransactionFactory());
        bean.setDataSource(multiDataSource);
        /**
         * 刘润玉 2023-10-11
         * 因为BasePo不必要了,所以MetaObjectHandler也不需要了,进而MultiDataSourceConfig
         * 中的相关代码也不需要了。
        //mybatisplus 全局配置
        GlobalConfig globalConfig  = new GlobalConfig();
        //配置填充器
        globalConfig.setMetaObjectHandler(new MetaObjectHandler());
        bean.setGlobalConfig(globalConfig);
         */
        //设置我们的xml文件路径
        Resource[] resources = new PathMatchingResourcePatternResolver().getResources(
                "classpath*:mapper/*.xml") ;
        bean.setMapperLocations(resources);
        return bean ;
    }
}