我遵循这里描述的方法:https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties,唯一的区别是在我的情况下,属性被用于多个类,所以我有将它们全部放在一个实用程序类中CloudConfig,我使用getter引用它的变量.这就是这个类的样子:
@Configuration
@RefreshScope
public class CloudConfig {
static volatile int count; // 20 sec
@Value("${config.count}")
public void setCount(int count) {
this.count = count;
}
public static int getCount() {
return count;
}
}
Run Code Online (Sandbox Code Playgroud)
我count在其他类中使用变量CloudConfig.getCount().我能够在启动时加载属性,但我无法动态更新它们.谁能说出我做错了什么?如果不是制作这个配置类,我完全按照教程描述的一切正常工作但我无法适应我的用例.任何人都可以告诉我缺少什么吗?
无法使用“ http://localhost:9001/refresh ”刷新配置文件。如果我重新启动客户端应用程序,更新的配置加载良好。以下是我用来测试相同的简单休息控制器。刷新是使用 curl 命令“curl -d {} localhost:9001/refresh/”运行的,它给出了 404 错误。
@RestController
@RefreshScope
class ExampleController {
@Value("${Message2}")
private String message2 = "Hello World";
@RequestMapping
public String sayValue() {
return message2;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我正在使用的 pom.xml
<groupId></groupId>
<artifactId>MyConfigurationClient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>MyConfigurationServer</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.M8</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope> …Run Code Online (Sandbox Code Playgroud)