【问题标题】:Reload properties without stopping and restart Boot application在不停止和重新启动引导应用程序的情况下重新加载属性
【发布时间】:2019-05-26 17:14:28
【问题描述】:

我有 application.properties 文件,我在代码中使用它来获取属性。我需要更改属性而不显式停止和启动应用程序 jar 文件。我在 STS IDE 中使用 Dev-tools,但是当通过 java -jar > 运行 jar 时它不起作用。

我不想包含 spring 云配置或任何数据库,因为它对我的应用程序来说太过分了。请建议任何其他开箱即用的解决方案

【问题讨论】:

  • 链接的问题有与数据库和云配置服务器相关的解决方案。我不想那样实现它
  • 你应该清楚你想要什么。是不是不想用spring cloud config server?有很多方法可以实现您想要的解决方案,但在发布您的问题之前,您需要明确提出您的问题以及您想要或不想要什么的详细信息。
  • @RobScully:已编辑

标签: spring-boot spring-boot-actuator


【解决方案1】:

使用 commons-configuration 依赖项重新加载属性文件并在需要反映属性文件更改时运行给定代码。

    Path rootLocation =  Paths.get("properties file location");
    PropertiesConfiguration config = new PropertiesConfiguration(rootLocation.toAbsolutePath().toString());
    config.setReloadingStrategy(new FileChangedReloadingStrategy());
    config.get<DatatypeOfPropertyField>("propertyName");

我也在做同样的事情。我正在使用外部属性文件。当我的应用程序启动时,在发生更改时将属性初始化为属性 bean 类,执行上述代码并在属性 bean 中设置更改。

【讨论】:

  • 所以当你说执行上面的代码时,你会通过暴露一个单独的 REST 控制器并调用它来运行它吗?
  • @darshan kamat 是的
猜你喜欢
  • 2017-08-13
  • 2019-12-15
  • 2017-09-09
  • 2023-03-29
  • 1970-01-01
  • 2011-04-04
  • 2014-07-21
  • 1970-01-01
  • 2019-08-04
相关资源
最近更新 更多