SpringBoot项目配置多数据源

SpringBoot项目配置多数据源


@Configuration
@EnableAutoConfiguration
@MapperScan(basePackages=DbConfig.PACKAGE,sqlSessionFactoryRef="moduleSqlSessionFactory")
public class DbConfig{
    static final String PACKAGE="cn.mw.module.dao";
    static final String MAPPING_LOCATION="calsspath*:mapper.module/*.xml";
     
     @Value("${spring,datasource.url}")
     private String url;
     @Value("${spring,datasource.username}")
     private String username;
     @Value("${spring,datasource.password}")
     private String password;
     @Value("${spring,datasource.driverClassName}")
     private String driverClassName;

   /**在一个yml中配置
   spring:
     datesource:
      url: jdbc:mysql://***
      username: root 
      password: 123456
      driverClassName: com.mysql.jdbc.Driver
*/
   @Bean(name = "moduleDataSource")
    public DataSource moduleDataSource() {
        DruidDataSource datasource=new DruidDataSource();
        datasource.setUrl(this.url);
        datasource.setUsername(username);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);
       return datasource;
    }
   
/**
或者有多个配置文件
 @Bean(name = "moduleDataSource")
    @ConfigurationProperties(prefix = "module.datesource")
    public DataSource moduleDataSource() {
        return DruidDateSourceBuilder.create().build();
    }

    */
  
    @Bean(name = "moduleTransactionManager")
    public DataSourceTransactionManager moduleTransactionManager(@Qualifier("moduleDataSource") moduleDataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
  
    }
  
    @Bean(name = "moduleSqlSessionFactory")
    public SqlSessionFactory basicSqlSessionFactory(@Qualifier("moduleDataSource") moduleDataSource moduleDataSource) throws Exception {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(moduleDataSource);
        
        factoryBean.setMapperLocations(
                new PathMatchingResourcePatternResolver().getResources(DbConfig.MAPPER_LOCATION));
                //设置数据库与实体类属性驼峰映射
        factoryBean.getObject().getConfiguration().setMapUnderscoreYoCamelCase(true)
        return factoryBean.getObject();
    }
  
    @Bean(name = "moduleSqlSessionTemplate")
    public SqlSessionTemplate testSqlSessionTemplate(
            @Qualifier("moduleSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

多个数据源,在yml中配置多个连接数据库的参数以及多个配置类。
注意:连接的多个数据源采用的是不同的数据库,比如来源是mysql,sqlserver,如果采用pagehelper分页插件,在yml中加入
pagehelper: auto-runtime-dialect: true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值