本条笔记主要实现两个功能点
1.成功注册到nacos
2.nacos不同环境下的配置文件读取
3.测试配置文件更新
nacos安装步骤参考 https://www.jianshu.com/p/33d96bc795c9
命名空间配置
登录nacos
创建命名空间
image.png
测试创建了3个空间 分别是 dev test pro 当然你可以更加自己的业务自由创建
创建完毕后点击配置管理-配置列表 ,增加了3个命名空间,点击dev,会显示命名空间id
8a1f90e0-2c31-4bd0-a096-7a78c3591f70 (下面会用的上)
image.png
点击加+创建一个配置
文件命名规则
${spring.application.name}-${spring.profiles.active}-${spring.cloud.nacos.config.file-extension}
image.png
注册服务
创建SpringBoot项目 引入以下依赖 项目结构
image.png
<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-config</artifactId>
</dependency>
<!-- nacos 发现服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
@EnableDiscoveryClient //启用发现客户端
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
配置 bootstrap-dev.yml
spring:
application:
name: nacos-demo #服务名称
cloud:
nacos:
discovery:
server-addr: http://127.0.0.1.86:8841 #nacos注册地址
group: DEFAULT_GROUP #注册组 (服务组管理,不强制)
config:
server-addr: http://127.0.0.1:8841 #nacos注册地址
file-extension: yaml #配置文件后缀支持 txt json yam xml html Properties 格式 大家更加喜欢来
namespace: 8a1f90e0-2c31-4bd0-a096-7a78c3591f70 #命名空间ID 不配置 默认 public
group: DEFAULT_GROUP # 分组 (配置组管理,不强制)
profiles:
active: dev
server:
port: 8789
定义实体UserModel
@Value("${member.name}")
private String name;
@Value("${member.age}")
private String age;
@Value("${member.address}")
private String address;
@EnableDiscoveryClient
@SpringBootApplication
public class DemoApplication {
@RefreshScope //热加载
@Bean //注入
public UserModel userModel() {
return new UserModel();
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
测试
@RestController
public class Controller {
@Autowired
private UserModel userModel;
@GetMapping("test")
public String test(){
return "用户:"+userModel.getName()+" age:"+userModel.getAge()+" \n地址:"+userModel.getAddress();
}
}
访问
image.png
[图片上传中...(image.png-87d835-1587373267170-0)]
成功从nacos中读取
接下去尝试下 热更新,我们修改 nacos配置文件 将 age 改为2012
此时看控制台有日志输出
然后再次刷新网页 发现参数已更新
image.png
注意点
配置文件名称必须按照规范填写,必须严格遵守
${spring.application.name}-${spring.profiles.active}-${spring.cloud.nacos.config.file-extension}
待更新...