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

Spring Boot 2:动态刷新属性不工作

施飞雨
2023-03-14

我遵循了这个官方教程使用Spring boot 2.0.0开始集中配置。RELEASE和Spring cloud Finchley。M8

但是动态刷新属性(不重新启动)不起作用。经过一些调试,我注意到ContextRefresh中的refresh()方法。类,它将正确返回更改后的键,但在下次使用中重建用@RefreshScope注释的bean之后。它仍然看到旧的值,而不是更新的值。

注意:这与Spring bootv1.5.6和Spring cloud Edgware完美配合。发布。

有什么帮助吗?

谢谢

共有3个答案

长孙鸿波
2023-03-14

在应用程序中使用以下内容。属性-

management.endpoint.refresh.enabled=true
management.endpoint.restart.enabled=true
management.endpoint.health.enabled=true
management.endpoint.health.show-details=always
management.endpoint.info.enabled=true
management.endpoints.web.exposure.include=info,health,refresh    

使用yaml配置文件它不适合我,当切换到属性文件时,它适用于上述配置。

谢谢

蓬琦
2023-03-14

对于spring boot 2.0或更高版本,使用“选项”方法调用“执行器/刷新”,而不是方法“POST”。

对于较低版本(

确保,你有management.endpoints.web.exposure.include=*定义在application.properties.

微生德运
2023-03-14

Spring来了。云配置。spring boot 2.0.1中的uri。RELEASE始终查找端口8888,不接受其他值,因此我设置了以下配置(您可以忽略它,因为它是客户端的默认值,服务器应在端口8888上运行)

spring:
  cloud:
    config:
      uri: http://localhost:8888

我还尝试公开客户端中的所有其他服务进行测试,如下所示

management:
  endpoints:
    web:
      exposure:
        include: '*'

或使用以下方法仅允许刷新

management:
  endpoints:
    web:
      exposure:
        include: refresh

然后调用POST方法而不是GET进行刷新

$ curl -X POST localhost:8080/actuator/refresh -d {} -H "Content-Type: application/json"

最后,它起作用了。

 类似资料:
  • 我可以动态刷新Spring Boot的自动配置设置所使用的属性吗? 例如,我设置了以下属性(通过云配置)来自动配置: 现在,如果我更改配置服务器上的密码道具,并命中终结点,我可以看到已检索到更新的道具,但没有刷新。 我知道我可以手动配置bean,并确保它们属于,但我希望找到一种方法将自动配置的属性标记为“可刷新”。我有一些用例,我想刷新Spring Boot为数据源之外的其他bean使用的道具,手

  • 我正在使用PCF提供的配置服务器实例,该实例由基于GIT的repo-to-server属性支持。我的应用程序连接到此配置服务器服务实例,并公开“刷新”endpoint。除了在更新属性后立即更改git中的属性并将http post发送到应用程序(/actuator/refresh)之外,其他一切都正常工作,我没有得到更新的prop name作为响应。如果我等待几秒钟,然后再次发送http post以

  • 我使用“userdefaults”存储用户重新加载页面的日期时间。但是,我发现即使时间过了,它也不会刷新 因为我正在测试,所以我用“分钟”来简化我的测试。我希望当每分钟发生变化时,上面的代码会更新我的UserDefaults。 我发现我浏览到另一个页面,回到HomeView。时间戳根本没有更新。我打印了lastLaunchDate,它也没有更新。

  • 我已经配置了spring cloud config,它从GitHub获取属性。如果发送到,我还可以在应用程序中获得更新的值。 我是否需要为它实现Rabbitmq和云总线,或者有任何其他简单的方法来实现它?另外,该文档指出,我们需要为推送通知添加对spring-cloud-config-monitor库的依赖关系。http://projects.spring.io/spring-cloud/spri

  • 我使用springcloud config server在生产环境中按计划在运行时刷新我的应用程序属性。我的日程表每两周一次,没有任何问题。 我的应用程序在Kubernetes cloud上运行在多个吊舱上。吊舱随时可能崩溃或重新启动。当pod崩溃/重新启动时,它在应用程序启动时从配置服务器和存储库中获取最新的属性文件,而不是等待下一个计划的刷新周期。 任何解决以上问题的建议将不胜感激。

  • 实际上,我正在与Spring Cloud Gateway合作一个项目。 我有一个配置类,它从一个定制的PropretySourceFactory获取其属性。我想对属性进行热重新加载,所以我调用了actuator/refresh(curl-localhost:8080/actuator/refresh-d{}H“Content-Type:application/json”),但它不会重新加载我的配置