springboot 项目改进成多个数据源时遇到的问题

之前使用mybatis注解创建动态的sql语句,把相关jar包添加到springboot项目中使用,springboot中

@SpringBootApplication默认scanBasePackages是当前包

可以修改增加相关的多个包名

@SpringBootApplication(scanBasePackages = {"xyz.ccw.cloud"})

增加DataSourceUserConfig  配置类,Import(value = {SqlInterceptor.class})

@Configuration
@MapperScan(basePackages = {"xyz.ccw.cloud.messagecenter.dao" },sqlSessionTemplateRef = "userSqlSessionTemplate")
@Import(value = {SqlInterceptor.class})
public class DataSourceUserConfig {
    @Value("${mybatis.mapperLocations}")
    private String mybatisMapperLocations;

    @Value("${mybatis.configLocations}")
    private String mybatisConfigLocations;

    @Autowired
    private SqlInterceptor sqlInterceptor;

    @Bean(name = "userDataSource")
    @ConfigurationProperties(prefix = "spring.datasource.user")
    public DataSource userDataSource() {
//        return DataSourceBuilder.create().build();
        return new DruidDataSource();
    }
    @Bean(name = "userSqlSessionFactory")
    public SqlSessionFactory userSqlSessionFactory(@Qualifier("userDataSource") DataSource dataSource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();


        bean.setMapperLocations(resolver.getResources(mybatisMapperLocations));
        bean.setConfigLocation(new ClassPathResource(mybatisConfigLocations));
        bean.setTypeAliasesSuperType(BaseEntity.class);
        bean.setPlugins(new Interceptor[]{sqlInterceptor});
        Properties properties = new Properties();
        properties.setProperty("dialect","mysql");
        bean.setConfigurationProperties(properties);
        return bean.getObject();
    }


    @Bean(name = "userTransactionManager")
    public DataSourceTransactionManager userTransactionManager(@Qualifier("userDataSource") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }


    @Bean(name = "userSqlSessionTemplate")
    public SqlSessionTemplate userSqlSessionTemplate(
            @Qualifier("userSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }


}
 

深圳逆时针







 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值