⑤. Nacos作为配置中心-基础配置
DataID 掌握
(1). Nacos中的dataid的组成格式与SpringBoot配置文件中的匹配规则
(2). 官网
(3). 实操
①. 配置新增nacos-config-client-dev
②. Nacos界面配置对应
③. 设置DataId
公式:
(${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension})
prefix默认为 spring.application.name的值
spring.profile.active即为当前环境对应的 profile,可以通过配置项 spring.profile.active来配置
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置
- ①. 新建:cloudalibaba-config-nacos-client3377
- ②. POM
<dependencies> <!--nacos-config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--web + actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--一般基础配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- ③. YML
- Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,此能保证项目正常启动
- springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application
(1).bootstrap.yml server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 #服务注册中心地址 config: server-addr: localhost:8848 #配置中心地址 file-extension: yaml #指定yaml格式的配置
(2).application.yml spring: profiles: active: dev
④. 主启动
@EnableDiscoveryClient @SpringBootApplication public class NacosConfigClientMain3377 { public static void main(String[] args) { SpringApplication.run(NacosConfigClientMain3377.class,args); }
⑤. 业务类
@RestController @RefreshScope//支持Nacos的动态刷新功能 //@RefreshScope:修改下nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新 public class ConfigClientController{ @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo() { return configInfo; } }
⑥. 测试
启动前需要在nacos客户端-配置管理-配置管理栏目下有对应的yaml配置文件
运行cloud-config-nacos-client3377的主启动类
调用接口查看配置信息 http://localhost:3377/config/info
自带动态刷新:修改下Nacos中的yaml配置文件,再次调用查看配置的接口,就会发现配置已经刷新
⑦. 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置