gpt4 book ai didi

java - 在运行时观察 application.properties 的变化 Spring boot

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:56 31 4
gpt4 key购买 nike

我有 Spring Boot 应用程序,我想在运行时观察 application.properties 的变化。例如我有属性名称:

姓名 = 约翰,测试

我得到它:

  @Value("${name}")
String name;

当我启动我的应用程序时,它会打印 John 和 Test,现在如果我在运行时添加另一个名称,我也想打印它。

我知道可以使用刷新范围来完成,但我不想使用/refresh 端点来刷新它。我想在不发送请求的情况下完成它。

还有其他解决办法吗?

最佳答案

JMX 技术可以帮助您,它允许远程连接到正在运行的 JVM 并访问其公开的功能。 Spring 为您提供了一个工具,即 @ManagedResoruce@ManagedOperation 注释。

为了给你一个提示,你创建一个 bean:

@ManagedResource
public class NameUpdater {
@Value("$name")
private String name;

@ManagedOperation
public void updateName(String newName) {
this.name = name;
}
}

现在,当您启动应用程序时,您还可以运行Java Mission Control或VisualVM,它们是JDK中提供的工具。您应该看到正在运行的进程的 PID 并连接到它以便访问您的托管 bean。

关于java - 在运行时观察 application.properties 的变化 Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57355028/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com