@RefreshScope实现nacos配置中心数据的动态刷新。
如果需要监听nacos配置中心数据的变化,并执行对应的业务逻辑,则可以使用@NacosConfigListener注解。
除了需要导入微服务和nacos配置中心的jar,还需要额外导入如下的jar:
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-spring-context</artifactId><version>1.1.1</version></dependency>
另外启动类或者配置类使用@EnableNacosConfig进行修饰
// 使nacos配置监听生效
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@SpringBootApplication
public class ThreadDynamicApplication {public static void main(String[] args) {SpringApplication.run(ThreadDynamicApplication.class, args);}}
@NacosConfigListener的使用
@RefreshScope
@RestController
public class TestController {@Value("${person.name}")private String name;@GetMapping("/test")public String test() {return name;}// 监听nacos配置,当配置中心中指定配置发生变化时,触发该注解修饰的方法// dataId来自nacos配置中心创建的配置的dataId// properties可以指定很多属性,比如namespace、username、password等@NacosConfigListener(dataId = "test.yml", groupId = "DEFAULT_GROUP", properties = @NacosProperties(namespace = "public"))public void onConfigChanged(String newConfig) {System.out.println("newconfig:" + newConfig);}
}