我正在使用 spring-cloud-consul 与 Consul 合作,目前遇到了这个问题。我在 consul 中创建一个键作为 config/ConsulServer/my/username,值为“bob”。在我的控制器中,如果进行 API 调用“/foo”,我会返回此值。当我第一次将其修改为“史蒂夫”时,该值被更新,我得到“史蒂夫”。但是,它第二次不起作用。该值仍然是“史蒂夫”。谁能帮助我做错了什么?我的代码是
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulServer {
public static void main(String[] args) {
SpringApplication.run(ConsulServer.class, args);
}
}
@Component
@RefreshScope
@ConfigurationProperties("my")
public class SampleProperties {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username= username;
}
}
@RestController
public class ConsulController {
@Autowired
private SampleProperties consulConfig;
@GetMapping("/foo")
public String prop() {
return this.consulConfig.getUsername();
}
}
我的 bootstrap.yml 是
spring:
application:
name: ConsulServer
cloud:
consul:
host: localhost
port: 8500
config:
enabled: true
fail-fast: true
watch:
enabled: true
discovery:
register: true
我的 application.yml 是
spring:
application:
name: ConsulServer
我正在使用 spring-cloud-starter-consul-all 版本 2.1.0.RC3