Spring中动态获取Nacos配置的几种方式

835 阅读1分钟

需求

在日常开发中,我们经常会有这样的需求:

在Nacos后台修改了某个配置之后,在程序中能够实时获取到,而不用重启应用。 要实现这个需求,接下来介绍实现需求的两种方式。

示例配置文件如下:

app:
  appId: 123
  appName: 哈哈哈

用法

使用@Value注解

在属性上使用@Value和SpEL来获取配置,然后在类上加上@RefreshScope

@RefreshScope
@RestController
public class AppController {

   @Value("${app.appName}")
   private String appName;
   
}

使用@ConfigurationProperties

使用@ConfigurationProperties注解的类,在配置文件修改之后,会自动刷新属性,无需添加@RefreshScope注解。

@Data
@Configuration
@ConfigurationProperties(prefix = "app")
public class AppProperties {

    private String appId;

    private String appName;
}