1

我在属性文件中有一个值可以说

my.flag=false

我将此文件放在 {.war 文件的位置}/config 文件夹中,以覆盖内部 application.properties 文件。因此,当在我的控制器中时,我只是打印此键的值,它确实正确地显示为 false。

现在我的问题是,如果我将 application.properties 中的这个值更改为 true,仍然在控制器中我得到以前的值(启动服务器时的值)。

那么如果我必须更改 application.properties 文件中的值,是否每次都需要重新启动服务器?

4

1 回答 1

2

您无需重新启动应用程序。

最简单的方法是每次访问属性时检查属性文件。这样,您的应用程序将始终与保存在文件中的新值同步。

但是效率不高,因为每次访问属性时都必须读取文件。

更好的方法应该是有一个配置类来处理您的应用程序的配置。

您应用程序中的所有类都将访问配置类以读取值。

配置类将按间隔轮询文件以加载新值。

最简单的方法是将配置类作为单例。

Spring 框架提供的另一个解决方案是Config Server

这适用于云,但如果您的应用程序和配置很复杂并且需要更多功能,您应该检查这种可能性。

于 2018-02-10T15:13:35.603 回答