当前位置: 首页 > 面试题库 >

在不重新启动servlet容器的情况下重新加载/刷新Spring配置文件

孙思源
2023-03-14
问题内容

如何在不重新启动servlet容器的情况下刷新Spring配置文件?

我正在寻找JRebel以外的解决方案。


问题答案:

对于那些最近在这上面绊脚石的人来说,解决此问题的当前和现代方法是使用Spring Boot的Cloud Config。

只需添加@RefreshScope注释你刷新豆类和@EnableConfigServer你的主/配置。

因此,例如,以下Controller类:

@RefreshScope
@RestController
class MessageRestController {

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

    @RequestMapping("/message")
    String getMessage() {
        return this.message;
    }
}

在Spring Boot Actuator上(通过HTTP端点或JMX)调用时,message将为/message端点返回String属性的新值refresh



 类似资料:
  • 我们正在使用JBoss Enterprise Application Platform server(即JBoss EAP 6.1)来开发使用Logback进行日志记录的新web应用程序。我们已经使用JBoss EAP好几个月了,一切都很好。此外,正如您所知,您可以在运行时在JBOSS上部署和取消部署应用程序和配置文件(如mail service.xml),也就是说,无需重新启动服务器。 但是,如

  • 我读了几个类似的问题,这似乎是我能做的最好的。是否可以在dist上启用实时重新加载而无需完全重新启动应用程序? 顺便说一下,我的IDE是IntelliJ。我开始怀疑IntelliJ是否需要排除dist目录。如果是这样的话我会跟进的。

  • 我有一个kubernetes集群,安装了保险库(通过头盔图表)。 我想将机密从vault填充到pod中的文件(例如nginx),并每5分钟刷新一次机密。 我使用以下配置对其进行了测试(使用适当的vault策略/后端身份验证): namespace.yaml Service_account.yaml nginx-deployment.yaml 当我将此配置应用于kubernetes集群时,将创建部署

  • 我正在使用Bing Maps interactive SDK中的动画雷达层:https://www.Bing.com/api/Maps/sdkrelease/mapcontrol/isdk/weatherradarmap?towww=1&redig=40890db2e2c449ac91dad6cd69209931 我明白瓷砖层是如何分配的。我怎样才能修改它,以便在不重新加载整个页面的情况下(也就是

  • 我正在尝试在运行时重新加载应用程序的配置。配置位于yaml文件中,与ConfigurationProperties的绑定按预期工作。接下来就是。我想在yaml更改后重新加载配置。或者更确切地说,我正在使用预定的检查文件是否已更改。 我希望避免运行第二台服务器来更新我的环境。我有两个问题: 如何更新环境,也许? 我如何传播这些? Spring云配置文档说明: 只要您能够实际更改环境并发布事件,Env

  • 如何在sonarqube中添加注册新规则而不重新启动服务器。我在一个质量配置文件中有50条规则,在分析时使用violation.xml,它包含的新规则没有在声纳数据库中注册,所以在分析时,我需要检查声纳数据库,如果规则不可用,它需要添加到声纳数据库中,分析应该继续。如何在不重新启动服务器的情况下添加规则?请帮忙谢谢。