SpringCloud|【SpringCloud】配置中心config动态刷新配置文件—更改数据库却没有得到实时变化怎么办
在上一篇博客中,已经很容易的获取到了配置文件的变化,只要配置文件发生变化,只要用POST方式访问下/actuator/bus-refresh,就刷新到改变了的新属性值。可是有一个地方比较特别,就是如果你改的是数据库,却丝毫没有效果,别的属性明明已经得到了改变,说明动态刷新配置文件是成功了的,那为什么偏偏只有关于数据库的并没有变化呢,明明已经换了数据库,值有所变化才对,但却还读的是改动之前的数据库。一开始的我,还以为是动态刷新配置文件没有实现呢,后来多次测试发现,动态刷新配置文件是成功的,自定义的配置属性ip一改,就能得到变化,只有数据库是怎么改到不变的,后来多次查证实践,发现关于数据库,需要单独写一个读取数据的配置类,每次刷新的时候重新获取数据源,就可以了
配置类如下
@Configuration
public class DataSourceConfigure {
@Bean
@RefreshScope
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(DataSourceProperties properties){
System.out.println("执行了重新获取数据源");
return DataSourceBuilder.create(properties.getClassLoader())
.type(HikariDataSource.class)
.driverClassName(properties.determineDriverClassName())
.url(properties.determineUrl())
.username(properties.determineUsername())
.password(properties.determinePassword())
.build();
}
}
【SpringCloud|【SpringCloud】配置中心config动态刷新配置文件—更改数据库却没有得到实时变化怎么办】@Configuration,用于定义配置类,等价于
@Bean等价于
@ConfigurationProperties获取配置在 application.properties 或 application.yml 文件中的参数值
@Primary,优先选择,自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者
@RefreshScope,配置文件自动刷新
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长