当前位置: 首页 > 面试题库 >

在Spring Boot中动态更改application.properties值

缑高朗
2023-03-14
问题内容

目前,我正在Spring Boot中基于​​REST的项目上工作。我在“ application.properties”文件中添加了api网址。

application.properties

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

有什么解决办法吗?


问题答案:

正如@moilejter所建议的那样,一种可能的方法是将其保留在数据库表中,并且在开始时,您只需从该表中读取而不是从application.properties文件中读取即可。您的application.properties文件可以保存数据库连接所需的信息。

您还需要一个JMX方法或REST
API来在您的应用程序中触发该URL发生了更改,并且该URL会直接从同一表中读取。这样,即使应用程序重新启动,您也将很安全,并且不会丢失覆盖。

您可以将BeanFactoryPostProcessor与Environment Bean结合使用,以利用Spring占位符概念。



 类似资料:
  • 问题内容: 我有这样的查询结果: 列数未知,因为它是数据透视查询的结果。 我想将列的名称更改为如下所示: 颜色是我从另一个表中检索到的信息。 我怎样才能做到这一点? 谢谢 编辑:这是查询。 问题答案: 模式设置 : 查询 :

  • 问题内容: 我正在从数据库中成功获取数据值。我也将它们存储到一个数组中。我需要将String数组作为项的加载,以响应执行的关键操作。每当获取按键值时,如何获取按键值,就如何重新加载项目。相反,我需要动态刷新项目。 问题答案:

  • 问题内容: 我的问题是:如何更改标签中的文本?标签在布局内,但似乎不起作用-也许我做对了。 这是我的代码: 这是Main Windows GUI,一个Qt-Designer提供: 这是接口的逻辑: 我想在用户登录到程序后更改标签。我要更改的标签是,我想将其替换为,它对应于QLineEdits之一。 更新 我进行了您告诉我要做的所有更改,该项目看起来看起来井井有条,但是现在我得到了以下输出: Typ

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于动态内容 通过对提供内容的服务器行为进行编辑,可以更改页面上的动态内容。例如,您可以编辑记录集服务器行为,以便向页面提供更多的记录。 在“服务器行为”面板中列出了页面上的动态内容。例如,如果向页面中添加了某

  • 问题内容: 我正在以编程方式/动态方式创建原型bean。我希望启动后的这些bean在jmx控制台中。我如何区分它们?我正在使用注释以便将我的bean添加到jmx中, 我需要动态注入objectName。知道我该怎么办吗? 这是我的jmx配置: 问题答案: 您可以使用JMX命名策略来执行此操作。在工作中,我们使用一个接口: 我已经发布了实现RuntimeMetadataNamingStrategy命

  • 问题内容: 我在中创建两个对象,然后执行以下操作。 运行代码时,我可以看到两个矩形(一个在Aqua中,一个在黑色中),当我单击按钮时,我必须等待2秒钟才能查看两个矩形的颜色变化。 我先更改一个矩形的颜色,然后再更改下一个矩形的颜色。 我的问题是为什么我应该等待2秒?有没有一种方法可以动态更新矩形的颜色? 问题答案: 您正在UI线程上睡眠,该线程会阻止任何进一步的处理(包括刷新屏幕)。 如果需要延迟