具有 Spring Boot 属性的 Spring Config Server

Posted

技术标签:

【中文标题】具有 Spring Boot 属性的 Spring Config Server【英文标题】:Spring Config Server with Spring Boot Properties 【发布时间】:2021-02-01 22:00:12 【问题描述】:

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

场景 1:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于具有 Spring Boot 属性的 Spring Config Server的主要内容,如果未能解决你的问题,请参考以下文章

具有不同键的 Spring Boot 应用程序属性[重复]

具有不可变属性的@ConstructorBinding 不适用于 Spring Boot Kotlin 中的 @Value @ConfigurationProperties

如何为具有属性依赖项的 Spring Boot Application 类编写测试用例 - 无法解析占位符

Spring Boot - 添加外部属性文件

具有不同环境的关键云中的 Spring Boot 应用程序

Spring Boot如何通过嵌套属性查找记录[重复]