我已将所有应用程序所需的属性文件从tomcat中的webapps外化。现在我可以简单地更改属性文件值,而无需重建war文件并再次部署它。但是,对属性文件的每次更改都与服务器重新签名相关联。
是否有办法如何避免对属性文件更改进行回收。 我使用spring来读取很少webapps的属性文件和java属性传统方式的少量webapps。
请建议如何实现
答案 0 :(得分:3)
您可能需要考虑spring-cloud-config-server或spring-cloud-consul所有这些选项都支持分布式属性管理以及值更改刷新,而无需回收应用服务器。
您可以将@RefreshScope
用于希望在配置更改时重新初始化的Spring @Beans
,它们还提供了开箱即用的以下管理端点以及项目中解释的更多{{3} }}
/refresh
用于刷新@RefreshScope
bean /restart
用于重新启动Spring上下文(默认情况下禁用)任一选项(spring-cloud-config-server或spring-cloud-consul)都支持此功能
答案 1 :(得分:1)
您也可以试试cfg4j。它支持从本地文件和远程服务(git repository,Consul等)重新加载配置。