当前,我正在Spring Boot中基于REST的项目上工作。 我已经在“ application.properties”文件中添加了api网址。
即
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
对此有什么解决办法吗?
答案 0 :(得分:1)
正如@moilejter建议的那样,一种可能的方法是将其保留在数据库表中,并且在开始时,您只需从该表中读取而不是从application.properties文件中读取即可。您的application.properties文件可以保存数据库连接所需的信息。
您还需要JMX方法或REST API,以在您的应用程序中触发url发生了更改,然后只需从同一表中读取即可。这样一来,即使应用重新启动,您也将很安全,并且不会丢失覆盖。
您可以将BeanFactoryPostProcessor与Environment Bean结合使用,以利用Spring占位符概念。
答案 1 :(得分:0)
您可能要考虑使用云配置服务器来托管您的配置。两个示例是Spring Cloud Config
和Consul
。
这些服务器将托管您的应用程序的配置,并且您的spring boot应用程序将在启动时调出配置服务器以获取其配置。
spring-boot-actuator
公开端点/refresh
,该端点强制应用程序刷新其配置。在这种情况下,它将调出配置服务器以获取最新版本。
这样,您可以更改配置服务器中托管的配置,然后点击/refresh
端点,更改将由您的应用程序获取。
答案 2 :(得分:-2)
@ user2214646
使用春季表达语言