Nacos除了实现了服务的注册发现之外,还能将配置中心功能整合在了一起。通过Nacos的配置管理功能,可以将整个系统内的所有配置都集中在Nacos中存储。
下载链接(1.3.1版本源码) : https://github.com/alibaba/nacos/archive/1.3.1.zip
具体流程:
采用的nacos配置依赖版本是2.2.1.RELEASE
1、一键启动nacos服务
2、登录http://localhost:8848/nacos用户名密码都为nacos,添加配置文件
2.1新建一个命名空间(测试环境)
2.2 新建一个配置文件,此配置文件为springboot项目中的配置文件内容,文件名定义为项目名称+yaml格式(可自定义,这样定义方便项目中配置文件的编写)
3、新建父工程导入阿里巴巴依赖管理包(也可直接新建子工程导入相关依赖)
<!--spring boot 环境 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
<java.version>1.8</java.version>
<!--spring cloud 版本-->
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>
<!--引入Spring Cloud 依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--alibaba相关依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
4、新建子工程导入nacos配置中心的依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
5、编辑配置文件,配置文件名称为bootstrap.yaml或bootstrap.yml,连接远程配置中心的配置文件都要为bootstrap命名,他的优先级高于application。
如果用application.yml自定义配置内容在配置中心,程序读取不到。
配置中心的文件名默认会找spring.application.name+文件类型file-extension
server:
port: 9000
spring:
application:
name: nacos-config-provide
cloud:
nacos:
config:
#nacos地址
server-addr: 127.0.0.1:8848
#命名空间
namespace: 5f3fd5ce-1089-46fe-aa55-6263694dfc29
#配置文件类型,目前只支持yaml,yml,properties
file-extension: yaml
#开启自定刷新
refresh-enabled: true
enabled: true
#分组
group: DEFAULT_GROUP
6、新建类进行测试在要引用配置文件的类上标记注解@RefreshScope开启配置刷新,引入自定义配置文件内容进行测试
7、启动程序访问路径,得到远程配置中心中自定义配置内容
8、修改配置内容,不重启服务器
9、多环境部署
9.1 新建一个配置文件
2、项目配置文件修改多文件部署配置,配置文件名,分组,开启自动刷新功能
#多文件配置
shared-configs:
- dataId: abc.yaml
group: NACOS_GROUP
refresh: true
9.3 引入配置文件内容测试
成功(测试可发现,多环境部署,自定义配置内容相同优先使用之前的第一个自定义配置内容)
注意事项:
1、依赖是spring-cloud-starter-alibaba-nacos-config 2.2.1
2、远程配置中心Data Id命名和项目中spring.application.name+配置文件类型file-extension组成
3、项目配置文件名是bootstrap.yaml
4、引入配置内容类中要加@RefreshScope