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 ; 
 | 
  
 | 
    } 
 | 
} 
 |