0

我将 application.properties 文件存储在我的配置服务器中。我的客户端应用程序正在引用配置服务器来下载属性文件。

场景一:

当我在配置服务器中更改属性 server.port 的值时。我可以在不重新启动应用程序的情况下反映我的客户端应用程序中的更改吗?

4

1 回答 1

2

您可以@RefreshScope为此目的使用 bean,这并不理想,但尽可能接近配置服务器,毕竟这是一个非常先进的事情。

所以用这个注解标记的beans会导致spring清除beans/配置类的内部缓存EnvironmentChangeEvent,然后下次你尝试调用这个bean时会创建bean的实例。

要在配置服务器更改时触发此类事件,您可以显式调用执行器的refreshenpoint 或开发自己的可能基于某些消息传递系统的解决方案,以便配置服务器将成为“更改”消息的生产者,而消费者将成为您的应用程序。

现在我不能确定它是否特别适用于server.port,我个人从未见过需要更改此属性,但对于您的自定义 bean,此方法可以完成这项工作。

是一个关于这个主题的好教程

于 2020-10-19T06:36:11.787 回答