使用nacos做配置中心
步骤
1.新建一个springboot项目
2.修改pom.xml,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.moyang.learn</groupId>
<artifactId>alibaba-nacos-config-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>alibaba-nacos-config-client</name>
<description>使用nacos做配置中心</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 可选-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2.新建一个bootstrap的配置文件
spring.application.name=alibaba-nacos-config-client
server.port=8084
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
3.(可选)在启动类上添加:
@EnableDiscoveryClient
4.写一个测试类
package com.moyang.learn.alibabanacosconfigclient.rest;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class TestRest {
@Value("${title:111}")
private String title;
@Value("${moyang.name}")
private String name;
@GetMapping("title")
public String title() {
return "返回的是:" + this.title;
}
@GetMapping("name")
public String name(){
return "返回的是:" + this.name;
}
}
5.在nacos中配置如下:
点击配置列表,点击新建。
dataId: 对应的服务提供者的spring.application.name
Group:默认是DEFAULT_GROUP
然后编辑配置内容,如下,
6.启动服务、访问 http://127.0.0.1:8084/name即可出现fangxiaobai。
然后修改配置内容,修改为 moyang.name=moyang,再次刷新页面就可以出现moyang了。
其他配置
// 可以通过一下内容指定文件前缀,文件后缀和分组。
spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEV_GROUP
nacos配置的多环境配置
有三种方式:
- s p r i n g . c l o u d . n a c o s . c o n f i g . p r e f i x − {spring.cloud.nacos.config.prefix}- spring.cloud.nacos.config.prefix−{spring.profile.active}.${spring.cloud.nacos.config.file-extension}
- 使用分组实现,创建几个不同的组,在配置文件里指定即可。
- 使用namespace实现。 在不同的命名空间下,可以存在相同的Group和Data ID的配置.注意要在应用中指定所使用的namespace的ID,比如spring.cloud.nacos.config.namespace=cf57341f-8711-43be-a6e8-8a45db57ca6a
nacos配置的多文件加载和共享配置
两种方式:
- 使用spring.cloud.nacos.config.ext-config配置,接收的是一个数组类型,如下:
spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[1].refresh=true
- 也可以如下配置:
spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties
配置共享文件的加载优先级
三类方式
A: 通过spring.cloud.nacos.config.shared-dataids定义的共享配置
B: 通过spring.cloud.nacos.config.ext-config[n]定义的加载配置
C: 通过内部规则(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group这几个参数)拼接出来的配置
优先级别是:A > B > C , A是最优先加载的。
最后
如果你觉得写的还不错,就关注下公众号呗,关注后,有点小礼物回赠给你。
你可以获得5000+电子书,java,springCloud,adroid,python等各种视频教程,IT类经典书籍,各种软件的安装及破解教程。
希望一块学习,一块进步!