spring - 无需重新启动服务器即可更改属性

标签 spring properties

我已经在 tomcat 中从 webapps 外部化了我的所有应用程序所需的属性文件。现在我可以简单地更改属性文件值,而无需重新构建 war 文件并再次部署它。但是,对属性文件的每次更改都与服务器回收相关联。

有没有一种方法可以避免属性文件更改的回收。
我正在使用 spring 读取少数 webapps 的属性文件和少数 webapps 的 java 属性传统方式。

请建议如何实现

最佳答案

您可能需要考虑 spring-cloud-config-serverspring-cloud-consul所有这些选项都支持分布式属性管理以及值更改刷新,而无需回收应用服务器。

您可以使用 @RefreshScope Spring @Beans如果希望在配置更改时重新初始化,他们还提供以下开箱即用的管理端点以及更多,如项目 git page 中所述。

  • /refresh用于刷新 @RefreshScope bean
  • /restart用于重新启动 Spring 上下文(默认禁用)

  • 这由任一选项(spring-cloud-config-server 或 spring-cloud-consul)支持

    关于spring - 无需重新启动服务器即可更改属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32158167/

    相关文章:

    spring - 使用 Spring MVC 时如何在 Freemarker View 中设置内容类型?

    java - Spring - ModelAttribute 和参数名称

    java - spring-boot 不调用自定义 UserDetailsS​​ervice

    spring - UCDetector 错误地检测到@Autowired EJB Bean 实现类。

    html - 更改 data-bg 中图像的 CSS

    java - 如何在 Spring 框架中安排任务每 'N' 秒发生一次

    javascript - 为什么 cloneNode 会排除自定义属性?

    c# - 属性 Getter/Setter 不是接口(interface)协定的一部分

    objective-c - 如何在 Objective-C 中声明双指针属性?

    java - 如何在 Spring 的属性文件中以加密形式存储密码