Spring boot+nacos+mysql通过修改配置密码自动刷新数据库连接

由于安全需要,数据库需要定时更新密码,快速更新服务连接数据库密码,现在提供参考方案如下

集中nacos配置,将密码集中收集到一个配置文件里

spring:
  datasource:
    password: 123456

在项目中使用nacos的配置中心,同时设置多个配置,包含数据库密码配置

  cloud:
    nacos:
      config:
        server-addr: 192.168.10.1:8848
        namespace: aaa
        group: aaa
        file-extension: yml
        extension-configs[0]:
          data-id: datasource.yml
          refresh: true

最后调整数据库连接配置

@Configuration
@RefreshScope
public class DataSourceConfig {

    @Bean
    @RefreshScope
    public DataSource dataSource(Environment env) {

        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        druidDataSource.setUrl(env.getProperty("spring.datasource.url"));
        druidDataSource.setUsername(env.getProperty("spring.datasource.username"));
        druidDataSource.setPassword(env.getProperty("spring.datasource.password"));
        druidDataSource.setInitialSize(2);
        druidDataSource.setMaxActive(160);
        druidDataSource.setMinIdle(0);
        druidDataSource.setMaxWait(60000);

        return druidDataSource;
    }
}

修改数据库密码后更新nacos配置文件,不需要再重启服务,服务就可以自动更新密码

如果有更好的方案可以给留言

你可能感兴趣的:(数据库,spring,boot,mysql)