无需重启服务器即可更改属性

时间:2015-08-22 16:10:13

标签: spring properties

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

是否有办法如何避免对属性文件更改进行回收。 我使用spring来读取很少webapps的属性文件和java属性传统方式的少量webapps。

请建议如何实现

2 个答案:

答案 0 :(得分:3)

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

您可以将@RefreshScope用于希望在配置更改时重新初始化的Spring @Beans,它们还提供了开箱即用的以下管理端点以及项目中解释的更多{{3} }}

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

任一选项(spring-cloud-config-server或spring-cloud-consul)都支持此功能

答案 1 :(得分:1)

您也可以试试cfg4j。它支持从本地文件和远程服务(git repository,Consul等)重新加载配置。