Java 我们可以在spring boot中更改application.properties文件中的键的值吗?

Java 我们可以在spring boot中更改application.properties文件中的键的值吗?,java,spring-boot,application.properties,Java,Spring Boot,Application.properties,我在属性文件中有一个值 my.flag=false 我将此文件放置在{location of.war file}/config文件夹中,以覆盖内部application.properties文件。 所以,当在我的控制器中,我只是打印这个键的值,它确实正确地显示为false 现在我的问题是,如果我将application.properties中的这个值更改为true,那么在控制器中仍然会得到上一个值(启动服务器时的值) 因此,如果必须更改application.properties文件中的值,是

我在属性文件中有一个值

my.flag=false
我将此文件放置在{location of.war file}/config文件夹中,以覆盖内部application.properties文件。 所以,当在我的控制器中,我只是打印这个键的值,它确实正确地显示为false

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


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

您不需要重新启动应用程序

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

但由于每次访问属性时都必须读取文件,因此效率不高

更好的方法应该是使用一个config类来处理应用程序的配置

应用程序中的所有类都将访问config类以读取值

config类将每隔一段时间轮询文件以加载新值

最简单的方法是将config类作为单例

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


这是针对云的,但是如果你的应用和配置很复杂,需要更多功能,你应该检查这种可能性。

如果你需要在运行时更改配置,你应该检查spring配置服务器:。当然,您可以通过轮询文件并在文件更改时重新加载配置的简单方式来完成。取决于你的要求有多复杂。@MarioSantini为什么不从评论中做出回答?@Kayaman因为我还没有其他答案。你好,马里奥。对于这一点==>更好的方法应该是使用一个config类来处理应用程序的配置。你能提供一个例子或教程链接吗?很抱歉回答得太晚,这取决于你的具体情况。如果您有一个普通的应用程序,那么您可以选择实现自己的配置类。要获得更好的解决方案,您应该看看Spring配置服务器。在我们的案例中,选择Spring配置服务器这样的云选项(这是推荐的解决方案)将很困难,因为该解决方案部署在本地,并且不会暴露于开放式Internet。相反,您能提供一个如何实现自己的配置类(singleton)的示例吗?嗨,对不起,我本想在这里提供一个简单的示例,但这几天我很忙,没有时间写,对不起。由于您的问题与Spring Boot有关,我发现这个解决方案可能会有所帮助: