我们可以在 spring 引导中更改 application.properties 文件中的键值吗?
Can we change the value of a key in application.properties file in spring boot?
我在属性文件中有一个值可以说
my.flag=false
我将此文件放在{.war 文件的位置}/config 文件夹中,以覆盖内部 application.properties 文件。
所以当在我的控制器中时,我只打印这个键的值,它确实正确地显示为 false。
现在我的问题是,如果我将 application.properties 中的这个值更改为 true,我仍然在控制器中得到以前的值(启动服务器时的值)。
如果我必须更改 application.properties 文件中的值,是否需要每次都重新启动服务器?
您不需要重新启动您的应用程序。
最简单的方法是在每次访问 属性 时检查 属性 文件。这样,您的应用程序将始终与保存在文件中的新值同步。
但效率不高,因为每次访问 属性 时都必须读取文件。
更好的方法应该是拥有一个配置 class 来处理您的应用程序的配置。
您应用中的所有 class 都将访问配置 class 以读取值。
并且配置 class 将定期轮询文件以加载新值。
最简单的方法是将配置 class 作为单例。
Spring 框架提供的另一个解决方案是 Config Server。
这是为云设计的,但如果您的应用和配置很复杂并且需要更多功能,您应该检查这种可能性。
我在属性文件中有一个值可以说
my.flag=false
我将此文件放在{.war 文件的位置}/config 文件夹中,以覆盖内部 application.properties 文件。 所以当在我的控制器中时,我只打印这个键的值,它确实正确地显示为 false。
现在我的问题是,如果我将 application.properties 中的这个值更改为 true,我仍然在控制器中得到以前的值(启动服务器时的值)。
如果我必须更改 application.properties 文件中的值,是否需要每次都重新启动服务器?
您不需要重新启动您的应用程序。
最简单的方法是在每次访问 属性 时检查 属性 文件。这样,您的应用程序将始终与保存在文件中的新值同步。
但效率不高,因为每次访问 属性 时都必须读取文件。
更好的方法应该是拥有一个配置 class 来处理您的应用程序的配置。
您应用中的所有 class 都将访问配置 class 以读取值。
并且配置 class 将定期轮询文件以加载新值。
最简单的方法是将配置 class 作为单例。
Spring 框架提供的另一个解决方案是 Config Server。
这是为云设计的,但如果您的应用和配置很复杂并且需要更多功能,您应该检查这种可能性。