搭建服务
- 项目名:nacos-config-2.1
添加坐标:
<dependencies> <!-- web 启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- nacos 服务发现 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- nacos 配置--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies>
- 创建yml配置文件:bootstrap.yml
server: port: 8072 # 端口号 spring: application: name: config-service # 服务名 cloud: nacos: config: server-addr: 127.0.0.1:8848 # nacos 服务地址 prefix: ${spring.application.name} #data ID的前缀,默认服务名 file-extension: yaml # data ID的后缀:config-service.yaml group: DEFAULT_GROUP # 组名 discovery: server-addr: 127.0.0.1:8848 #nacos服务地址
创建服务
- 编写启动类
package com.czxy.nacos; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TestNacosCloudConfigApplication { public static void main(String[] args) { SpringApplication.run(TestNacosCloudConfigApplication.class, args); } }
- 编写处理类
package com.czxy.nacos.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/config") @RefreshScope public class ConfigController { @Value("${czxy.message:'默认值'}") private String msg; /** * http://localhost:8072/config/get */ @RequestMapping("/get") public String get() { return msg; } }
查询服务
- 情况1,访问“默认数据”
http://localhost:8072/config/get
- 情况2,访问yml文件配置信息
czxy: message: 测试数据
- 情况3:访问nacos中的配置数据
整合知多少
在 Nacos Spring Cloud 中,dataId 的完整格式如下
${prefix}-${spring.profile.active}.${file-extension}
显示profile中的数据
1)编写profile:application-demo.yml
server: port: 8073 # 端口号 czxy: message: demo数据
2)修改启动项
-Dspring.profiles.active=demo
3)删除nacos配置后,测试
nacos 默认配置
- 1)nacos配置
config-service.yaml
的 Data ID
2)测试
nacos 配置 profile
- 1)配置nacos profile :
config-service-demo.yaml
2)测试
nacos配置文件加载顺序
spring boot、nacos各种配置文件的加载顺序
1.bootstrap.yml
2.application.yml
3.application-[profile].yml
4.[serviceName].yml #nacos配置
5.[serviceName]-[profile].yml #nacos配置
后面加载的文件,将覆盖前面文件的配置内容