当前位置: 首页 > 知识库问答 >
问题:

@refreshScope和/刷新不起作用

柯镜
2023-03-14

我已经尝试使用Config Server实现spring外部配置。当应用程序启动时,它第一次工作得很好,但对属性文件的任何更改都不会反映出来。我试图使用/refreshendpoint来动态刷新我的属性,但它似乎不起作用。在这方面的任何帮助都将是非常有帮助的。

我尝试向localhost:8080/refresh发帖,但得到404错误响应。

下面是我的应用程序类的代码

   @SpringBootApplication
public class Config1Application {

    public static void main(String[] args) {
        SpringApplication.run(Config1Application.class, args);
    }
}

@RestController
@RefreshScope
class MessageRestController {

    @Value("${message:Hello default}")
    private String message;

    @RequestMapping("/message")
    String getMessage() {
        return this.message;
    }
}
<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-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</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>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

和bootstrap.properties

spring.application.name=xxx
spring.cloud.config.uri=https://xxxxxx.com
management.security.enabled=false
endpoints.actuator.enabled=true

共有1个答案

况浩邈
2023-03-14

对于Spring2及更高版本,endpoint现在是/actuator/refresh

从评论中:

  • 您确实需要在bootstrap.properties/bootstrap.yml
  • 中设置 management.endpoints.web.exposure.include=refresh
 类似资料:
  • 我遵循这里描述的方法:https://github.com/jeroenbellen/blog-manage-and-reload-spring-properties,唯一的区别是,在我的例子中,属性在多个类中使用,所以我将它们放在一个实用工具类中,并使用getter引用它的变量。这就是类的样子: 我在其他类中使用变量,比如。我能够加载的属性启动只是很好,但我不能动态更新他们在飞行。有人能说出我做

  • 我使用的是Spring-Cloud的配置服务器。我希望刷新应用程序的配置,而不必重新启动它。 这是我的场景: 1)application.yml中的单个配置,存储在git中 5)运行刷新 在对controller的rest调用中,一切正常,配置被更新。 但是在对集成流的rest调用中,配置没有更新:

  • 问题内容: 我有以下webpack配置文件: 我想要做的就是在本地主机上运行我的应用程序,但是当我打以下命令时:“ http:// localhost:8080 / src / client / home ”(根据我的routes.jsx和运行webpack-dev- server之后) 我懂了 “无法获取/ src / client / home”。 问题答案: 您在路线中提到的第一件事是具有p

  • 问题内容: 我正在使用React-router,当我单击链接按钮时,它可以正常工作,但是当我刷新网页时,它不会加载我想要的内容。 例如,我进去了,一切都很好,因为我按链接到达这里。但是,如果刷新网页,则会得到: 默认情况下,它不是这样工作的。最初,我的URL为,并且它们工作正常。但是我不喜欢这种URL,所以尝试删除它,我写道: 这个问题不会发生,这个总是返回我想要的。 编辑: 这个程序是单页的,所

  • 我有一个应用程序,想要允许从设备事件的联系人。我用了(,true),但这对我不起作用。我使用appium 1.5.2,甚至我想刷那个特定的联系人聊天或打电话给那个特定的联系人。当我使用一个: 我发现了一些例外

  • 问题内容: 我正在使用React-router,当我单击链接按钮时,它可以正常工作,但是当我刷新网页时,它不会加载我想要的内容。 例如,我进去了,一切都很好,因为我按链接到达这里。但是,如果刷新网页,则会得到: 默认情况下,它不是这样工作的。最初,我的URL为,并且它们工作正常。但是我不喜欢这种URL,因此尝试删除它,我写道: 这个问题不会发生,这个总是返回我想要的。 编辑: 这个程序是单页的,所