温馨提示×

springboot修改配置文件无需重启怎么生效

小亿
856
2024-01-16 20:58:54
栏目: 编程语言

在Spring Boot中,可以通过使用@RefreshScope注解来实现在不重启应用的情况下,动态刷新配置文件。

以下是实现步骤:

  1. application.propertiesapplication.yml配置文件中设置需要动态刷新的配置项。
  2. 在需要获取配置项的地方使用@Value注解获取配置值。
  3. 在需要刷新配置的类上添加@RefreshScope注解。
  4. 修改配置项后,发送POST请求到/actuator/refresh路径,以刷新配置。

例如,假设有一个名为MyConfig的配置类,其中有一个需要动态刷新的配置项my.property

@Configuration
@RefreshScope
public class MyConfig {
    @Value("${my.property}")
    private String myProperty;

    // 省略其他代码...
}

application.properties文件中,配置my.propertymanagement.endpoints.web.exposure.include属性:

my.property=Hello World
management.endpoints.web.exposure.include=*

然后,在修改my.property配置项后,可以发送POST请求到/actuator/refresh路径,以刷新配置。

$ curl -X POST http://localhost:8080/actuator/refresh

这将触发配置的动态刷新,从而使修改后的配置生效,而无需重启应用。

2