注意:
首先是配置文件不要放在shared-configs,这个配置项的意思是公共配置,放在这个配置项里的配置文件都不会热更新.所有你获取的时候不会改变.需要热更新的配置文件都应该放在extension-configs
extension-configs: - data-id: kaikeba-common-config.yaml refresh: true # shared-configs: # - data-id: kaikeba-common-config.yaml # refresh: true
然后再需要的类中使用:@RefreshScope和@value注解就可以了
@RefreshScope //@ConfigurationProperties(prefix = "spring") public class OrderController { //@Autowired //private RestTemplate restTemplate; //@Autowired //private DiscoveryClient discoveryClient; @Value("${cz.config}") private String value;
再讲一种方法:导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
在类上使用
@ConfigurationProperties(prefix = "spring")表示以spring打头的下面所有属性动态更新
cz: config: false //============================================================ @RestController //@RefreshScope @ConfigurationProperties(prefix = "cz") public class OrderController { //@Autowired //private RestTemplate restTemplate; //@Autowired //private DiscoveryClient discoveryClient; public String getConfig() { return config; } public void setConfig(String config) { this.config = config; } private String config; }