【问题标题】:Dynamically change application properties value In spring Boot Batch在spring Boot Batch中动态更改应用程序属性值
【发布时间】:2020-07-17 17:42:02
【问题描述】:

我创建了一个 Spring Boot Batch 项目 (2.3.0)。 我已经在 Linux 服务器(开发环境)中启动了相同的操作。 Batch/conf 文件夹中有一个 application.properties 和 application-dev.properties。 从 application-dev.properties 我在我的 Spring Boot Tasklet 中取一个值,如下所示

代码

@Value("${configurable.json}")
private String configurableJson;

application-dev.properties

configurable.json = {"name":"name1"}

现在,如果我更改 application-dev.properties 中的可配置.json 值,即使重新启动批处理,更改也不会反映在批处理过程中。当我进行构建(我的构建是 zip)并重新部署它时,它是正确的。如何在不重新部署的情况下反映属性文件中的更改?

用于运行批处理的命令

nohup java -cp "/usr/share/Batch/lib:/usr/share/Batch/lib/*:/usr/share/Batch/conf" com.company.batch.Application & 

【问题讨论】:

    标签: java spring spring-boot spring-batch


    【解决方案1】:

    您可以使用属性加载器动态更改属性。希望此链接对您有所帮助here

    【讨论】:

    • 感谢@Jagan 的回复。它需要外部化属性文件吗?所以真正的 application.properties 将位于我们部署应用程序的同一路径下的 /tmp/example-properties 文件夹中。它需要同时运行配置服务和示例服务吗?在示例服务中(我的情况是批处理而不是休息服务),我们需要将 /tmp/example-properties/application.properties 引用为属性文件是吗?
    • 是的。从 jar 中外部化文件并创建将监视文件更改的属性感知类的类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多