1)配置pom文件
-
- <dependency>
- <groupId>com.alibaba.cloudgroupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
- <version>2.1.0.RELEASEversion>
- dependency>
-
- <dependency>
- <groupId>com.alibaba.cloudgroupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
- <version>2.1.0.RELEASEversion>
- dependency>
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
2)修改配置文件
nacos默认读取bootstrap.xml文件
- spring:
- application:
- name: test-server-tcp
- profiles:
- active: dev
- cloud:
- nacos:
- discovery:
- namespace: ${spring.profiles.active}
- server-addr: 192.168.0.1:8848
- config:
- namespace: ${spring.profiles.active}
- server-addr: 192.168.0.1:8848
- ext-config:
- - data-id: test-server-tcp.yml
- group: ${spring.profiles.active}
- refresh: true
3) 在nacos管理界面配置
1.新建namespace

2.新建配置文件

在需要引用配置的类中加入注解@RefreshScope
示例代码:
- @RefreshScope
- @RestController
- @RequestMapping(value="/config")
- public class NacosConfig {
-
- @Value(value = "${nacos.test-name}")
- private String testName;
- @Value(value = "${nacos.test-port}")
- private String testPort;
-
- @GetMapping(value = "/get")
- public String getConfig(){
- return "name: "+ testName +";" + "port: "+ testPort +";";
- }
-
- }
可以通过http url来验证动态配置是否生效
问题:程序里面有定时任务,定时任务读取的配置如果发生动态变化后,定时任务不执行。
原因:定时任务读取配置文件懒加载的方式
解决:在定时任务所在的类,实现一个接口
ApplicationListener并实现其方法,空方法即可


PS: 在程序里面所有用到定时任务的类中都要实现上述接口。