前言
当配置信息发生变动时,修改实时生效,无需要重新重启服务,就能够自动感知相应的变化,并将新的变化统一发送到相应程序上,快速响应变化。要实现这一目的,需要通过下面两种方案来实现。
实现方案
方案一
在@Value注入的变量所在类上添加注解@RefreshScope
@RefreshScope
@RestController
public class TestController
{
@Value("${ruoyi.name}")
private String name;
@Value("${ruoyi.version}")
private String version;
@GetMapping("info")
public String getInfo()
{
return name +"-"+ version;
}
}
方案二
使用@ConfigurationProperties装配配置属性
属性配置类:
@Component
@ConfigurationProperties(prefix = "ruoyi")
public class Properties {
private String name;
private String version;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}
使用配置类:
@RestController
public class TestController
{
@Autowired
private Properties properties;
@GetMapping("info")
public String getInfo()
{
return properties.getName()+""+properties.getVersion();
}
}
注意事项
- 不是所有的配置都适合放到配置中心,否则维护起来比较繁锁;
- 建议将一些关键参数、需要运行时调整的参数放到nacos配置中心,一般是自定义配置;
- 推荐共享配置放到配置中心,便于统一管理 , 比如测试开关配置:
isTest:true
等。
,