我正在配置服务器中存储application.properties文件。我的客户端应用程序正在引用配置服务器来下载属性文件。
场景1:
当我在配置服务器中更改属性server.port的值时。我可以在不重新启动应用程序的情况下反映我的客户端应用程序中的更改吗。
您可以为此目的使用@RefreshScope
bean,这并不理想,但在配置服务器中尽可能接近,毕竟这是一件非常高级的事情。
因此,用这个注释标记的bean将导致spring在EnvironmentChangeEvent
上清除beans/配置类的内部缓存,然后在下次尝试调用这个bean时将创建bean的实例。
为了在配置服务器改变时触发这样的事件,你可以显式地调用致动器的refresh
enpoint,或者开发你自己的可能基于某种消息系统的解决方案;改变";消息,消费者将是您的应用程序。
现在我不能确定它是否特别适用于server.port
,我个人从未见过有必要更改此属性,但对于您的自定义bean,此方法可以完成任务。
这里有一个很好的教程关于这个主题