java - 在 spring boot 中动态更改 application.properties 值

标签 java spring spring-boot

目前我正在使用 Spring Boot 开发一个基于 REST 的项目。 我在“application.properties”文件中添加了 api url。

应用程序属性

api-base-url=http://localhost:8080/RestServices/v1

还有来自 java 的“api-base-url”值访问。

在某些情况下,我需要动态更改“api-base-url”。 我动态更改了“api-base-url”值并且工作正常。

但我的问题是 当 wildfly 重新启动时,配置将重置为默认值。

即 这是我的默认值

api-base-url=http://localhost:8080/RestServices/v1

动态变化为

api-base-url=http://10.34.2.3:8080/RestServices/v1

当 wildfly 重新启动时,配置将重置为默认值。 即

api-base-url=http://localhost:8080/RestServices/v1

有什么解决办法吗?

最佳答案

您可能需要考虑使用云配置服务器来托管您的配置。两个示例是 Spring Cloud ConfigConsul

这些服务器将托管您的应用程序配置,您的 spring boot 应用程序将在启动时调用配置服务器以获取其配置。

spring-boot-actuator 公开端点 /refresh 强制应用程序刷新其配置。在这种情况下,它将调用配置服务器以获取最新版本。

通过这种方式,您可以更改配置服务器中托管的配置,然后点击 /refresh 端点,您的应用程序将获取更改。

关于java - 在 spring boot 中动态更改 application.properties 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51567260/

相关文章:

java - FTP - 以编程方式确定剩余时间或传输的字节数的方法?

Spring Batch Process 指示器模式

java - 如何从@ComponentScan 包中获取接口(interface)列表

spring-boot - Spring安全错误: java. lang.IllegalStateException:无法在其自身之后配置anyRequest

java - 嵌入式 Derby 开始时出现 J2C 错误

java - VSCode 中没有安装 'java' 文件的格式化程序

spring - 在 Spring security 中是否可以仅使用 HTTPS 进行登录?

java - 使用java测试ReactiveMongoTemplate的配置

spring-boot - @ConditionalOnMissingBean 不能被覆盖

java - JAVA 中的对象输出流/输入可序列化