springboot项目如何配置数据源

首先在配置环境变量里写
spring:
  datasource:
   mysql:
      url: 
      username: 
      password: 
      initialSize: 10
      minIdle: 1
      maxActive: 100
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 180000
      validationQuery: SELECT 1 FROM DUAL
建一个类拿到上面的信息
@Data
@Component
@ConfigurationProperties(prefix = "spring.datasource.mysql")
public class MysqlParamConfig {
    private String url;
    private Integer initialSize;
    private Integer maxActive;
    private Integer minIdle;
    private Integer maxWait;
    private String username;
    private String password;
    private String validationQuery;
    private Long timeBetweenEvictionRunsMillis;
    private Long minEvictableIdleTimeMillis;
}
然后建类,加工厂,事物,还有查询sqlsession选择。
@Configuration
@MapperScan(basePackages = {"//.mapper.mysql",
       "//.mapper.mysql",
        "//.project.mapper",
        "//.mapper.mysql"}, sqlSessionTemplateRef  = "primarySqlSessionTemplate",
        sqlSessionFactoryRef ="primarySqlSessionFactory" )
public class MysqlDataSourceConfig {
    @Resource
    private MysqlParamConfig mysqlParamConfig;
@Bean(name = "primaryDataSource")
@Primary
public DataSource primaryDataSource() {
    DruidDataSource datasource = new DruidDataSource();
    datasource.setUrl(mysqlParamConfig.getUrl());
    datasource.setInitialSize(mysqlParamConfig.getInitialSize());
    datasource.setMinIdle(mysqlParamConfig.getMinIdle());
    datasource.setMaxActive(mysqlParamConfig.getMaxActive());
    datasource.setMaxWait(mysqlParamConfig.getMaxWait());
    datasource.setUsername(mysqlParamConfig.getUsername());
    datasource.setPassword(mysqlParamConfig.getPassword());
    datasource.setValidationQuery(mysqlParamConfig.getValidationQuery());
    datasource.setTimeBetweenEvictionRunsMillis(mysqlParamConfig.getTimeBetweenEvictionRunsMillis());
datasource.setMinEvictableIdleTimeMillis(mysqlParamConfig.getMinEvictableIdleTimeMillis());
    return datasource;
}

@Bean(name = "primarySqlSessionFactory")
@Primary
public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setDataSource(dataSource);
    bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mappers/**/*.xml"));
    return bean.getObject();
}

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

@Bean(name = "primarySqlSessionTemplate")
@Primary
public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
    return new SqlSessionTemplate(sqlSessionFactory);
}

多个数据源,建立多个对应的类即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值