学习nacos注册中心之前,表示本地环境或者服务器上已经搭建完成nacos服务;
今天趁空余时间总结一下nacos注册中心实战相关的东西;
中文官方文档:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
pom依赖
新建springBoot项目,引入下面相关依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
配置文件
注意:此处采用的properties格式的配置文件,故配置文件命名必须为bootstrap.properties;
#nacos配置文件必须以此文件命名
#服务名
spring.application.name=member
#文件名 -- 如果没有配置则默认为 ${spring.application.name}
spring.cloud.nacos.config.prefix=${spring.application.name}
#指定开发环境
spring.profiles.active=dev
#nacos服务器地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#命令空间:默认为Public命名空间,可以省略不写
spring.cloud.nacos.config.namespace=public
#指定配置群组 --如果是Public命名空间 则可以省略群组配置
spring.cloud.nacos.config.group=DEFAULT_GROUP
#指定文件后缀
spring.cloud.nacos.config.file-extension=properties
此外,配置文件中需要注意spring.cloud.nacos.config.prefix
、spring.application.active
和spring.cloud.nacos.config.file-extension
这三者拼接后与nacos客户端中DataId
保持一致;
例如,此配置文件中拼接后为:
${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
最终拼接出来的就是:member-dev.properties (一定要注意约定!)
nacos管理平台
实战
配置项
上图是已经新增过得配置项,如果未新增,则选择右上角“+”
号,新增相对应的配置项;
源代码
- controller层
@RestController
@RequestMapping("/config")
public class MemberController {
@Value("${useLocalCache}")
private boolean useLocalCache;
@RequestMapping("/getConfig")
public boolean get() {
return useLocalCache;
}
}
启动SpringApplication服务,日志中打印的端口已经是配置列表中member-dev.properties中配置的server.port
项;
浏览器访问:http://localhost:8086/config/getConfig;
返回useLocalCache的值;
@RefreshScope注解
实现实时获取配置的值,需要在controller层加上注解;
注意:上面的nacos相关配置的依赖并不会生效,故需要更换新的依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
重新启动,在nacos客户端上修改相关配置,无须重启服务即可生效;