Nacos配置中心
源码下载 https://yangjing191928.coding.net/public/spring-cloud-alibaba/spring-cloud-alibaba/git/files/nacos
添加依赖
nacos的配置中心和服务中心依赖的jar不是同一个
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
配置文件
注意:1、配置文件必须是bootstrap.properties或者bootstrap.yml,如果配置application.properties或者application.yml会导致加载不到配置;2、spring.cloud.nacos.config.namespace如果是默认的Public,则不需填写,否则获取不到配置信息.
bootstrap.yml
# nacos配置
server:
port: 8071
spring:
application:
name: user-service
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
#注意,如果不填写命名空间,默认使用public,public可以不用填写,但是如果使用自己的分组,需要填写
#group: DEV_GROUP
#namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4
group: DEFAULT_GROUP
namespace: DEV
application.yml
我这个是在原来的基础上改的
#server:
# port: 8071
#spring:
# application:
# name: user-service
#
# cloud:
# nacos:
# discovery:
# server-addr: 127.0.0.1:8848
spring:
profiles:
active: dev # 表示开发环境
#active: test # 表示测试环境
#active: info
Nacos服务器相关的配置
命名空间
nacos使用namespace进行环境隔离,可以指定不同的环境,更好的管理开发、测试、生产的配置文件管理。
资源配置
配置管理 > 配置列表 > +
Data ID
Data ID的格式如下:
参考:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
${prefix}-${spring.profile.active}.${file-extension}
-
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
-
spring.profile.active 即为当前环境对应的 profile。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成
${prefix}.${file-extension}
。 -
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置。目前只支持 properties 和 yaml 类型。
Group
默认为DEFAULT_GROUP,可以对不同类型的微服务配置文件进行分组管理。配置文件通过
cloud: nacos: config: group: DEFAULT_GROUP # 分组的yml配置
配置内容
配置文件格式支持一下几种TEXT、JSON、XML、YAML、HTML、Properties
创建测试方法
新增一个Controller,代码如下:
@RestController
@RefreshScope //支持Nacos的动态刷新功能。
public class ConfigClientController {
@Value("${nacos.config}")
private String configInfo;
//http://localhost:8071/config/info
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
范问后效果截图: