1、环境搭建

1.1 依赖

<!--  nacos注册中心 注解 @EnableDiscoveryClient    -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> <!-- nacos配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

1.2 bootstrap.properties 配置

# 端口
server.port=9607
# 服务名
spring.application.name=kgcmall96-nacos-config
# nacos 配置中心 的地址
spring.cloud.nacos.server-addr=127.0.0.1:8848
# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml

1.3 请求

/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: nacos配置中心测试入口
*/
@RestController
public class KgcMallNacosConfigController { //单个读取远程配置中心的公共配置参数
@Value("${kh96.nacos.config:kh96-default}")
private String kh96NacosConfig; /**
* @param : []
* @return : java.lang.String
* @author : huayu
* @date : 28/11/2022
* @description : 读取远程nacos配置中心添加的统一自定义配置,返回
*/
@GetMapping("/testNacosConfig")
public String testNacosConfig() {
return kh96NacosConfig;
} }

1.4 添加远程配置文件

1.4.1 添加

1.4.2 配置信息

1.4.3 添加成功

1.5 测试

1.6 修改配置信息

1.7 再次 测试

1.8 重启项目测试

2、配置信息实时刷新

每次修改配置文件都需要重启项目,十分麻烦,需要设置实时刷新;

2.1 添加注解

@RestController
@RefreshScope //nacos配置动态刷新注解
public class KgcMallNacosConfigController {
......
}

2.2 测试

3、批量读取配置信息

3.1 配置类

/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: KgcMallNacosConfig
*/
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "kh96.nacos")
@Data
public class KgcMallNacosConfig { /*
测试 批量读取 配置信息
*/
private String config; }

3.2 请求

/**
* Created On : 28/11/2022.
* <p>
* Author : huayu
* <p>
* Description: nacos配置中心测试入口
*/
@RestController
public class KgcMallNacosConfigController { @Autowired
private KgcMallNacosConfig kgcMallNacosConfig; /**
* @param : []
* @return : java.lang.String
* @author : huayu
* @date : 28/11/2022
* @description : 读取远程nacos配置中心添加的统一自定义配置,返回
*/
@GetMapping("/testNacosConfig")
public String testNacosConfig() {
//测试 批量读取
return kgcMallNacosConfig.getConfig();
} }

3.3 测试

4、读取配置文件的组成

prefix-active-extension

prefix:前缀,默认为服务名

active:激活环境

extension:文件后缀(propertion或者yml),需要跟配置中心一致

${spring.cloud.nacos.config.prefix}.${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

4.1 active指定配置环境

# 指定nacos配置中心支持的配置文件后缀,注意:nacso上增加的配置文件后缀要跟此处一致,默认值properties
spring.cloud.nacos.config.file-extension=yml
# 指定环境
# 配置文件前缀(默认以 服务名为前缀)
spring.cloud.nacos.config.prefix=config
## 指定激活环境
spring.profiles.active=test # 最终拼接出来的就是 config-test-yml

4.2 添加配置文件

4.3 测试

5、命名空间 和 分组

5.1 添加命名空间

5.2 指定命名空间个分组

# 指定nacso配置中心的名称空间,配置的是对应名称空间的id值,不是名称
# 官方建议:namespace名称空间,作为环境区分,不同环境,使用不同的名称空间
spring.cloud.nacos.config.namespace=0e35ec99-dfac-45eb-84bb-e9d8a35f726e
# 指定名称空间下的分组,一般都是用于区分相同环境加的不同应用项目组,如果不配合配置,默认使用的是当前名称空间下的默认分组DEFAULT_GROUP,也支持自定义分组
spring.cloud.nacos.config.group=KH96_GROUP

5.2.1 添加配置

6、配置文件级别

6.1 配置文件级别

主配置 > 扩展配置 > 共享配置

相同类型配置下,下标越大优先级越高;

6.2 共享配置

6.2.1 配置信息

# nacos 的共享配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
# 提醒:nacos所有的配置中,主配置存在的情况下,具有最高优先级,同等配置不会被共分享配置覆盖(所以先删除主配置)
spring.cloud.nacos.config.shared-configs[0].data-id=kgcmall96-shared-config.yml
spring.cloud.nacos.config.shared-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true

6.2.2 添加配置文件

6.2.3 测试

需要先删除主配置,因为它优先级最高;

6.2.4 在配置一个共享配置,下标1

# 下标1覆盖下标0的配置
spring.cloud.nacos.config.shared-configs[1].data-id=kgcmall96-priority-config.yml
spring.cloud.nacos.config.shared-configs[1].group=KH96_GROUP
spring.cloud.nacos.config.shared-configs[1].refresh=true

6.2.5 添加配置文件

6.2.6 测试

6.3 扩展配置

6.3.1 配置信息

## nacos扩展配置,此配置项是一个数组,数组的下标越大,优先级越高,同等的共享配置,高优先级自动覆盖低优先级
## 扩展配置的优先级低于主配置,高于共享配置,如果某种场景下需要单独覆盖共享配置,就可以使用扩展配置,比如某个oracle,其他都意思mysql
spring.cloud.nacos.config.extension-configs[0].data-id=kgcmall96-extend-config.yml
spring.cloud.nacos.config.extension-configs[0].group=KH96_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true

6.3.2 添加配置文件

6.3.3 测试

SpringCloud Alibaba(四) - Nacos 配置中心的更多相关文章

  1. Spring Cloud Alibaba(5)---Nacos(配置中心)

    Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...

  2. 快速搭建 SpringCloud Alibaba Nacos 配置中心!

    Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录.而 Nacos 作为 Spring Cloud Alibaba 的核心 ...

  3. Spring Cloud 系列之 Alibaba Nacos 配置中心

    Nacos 介绍 Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理.英文全称 Dynamic Naming and Configuration Service ...

  4. 微服务从nacos配置中心获得配置信息

    一,安装nacos, 略 二,创建父工程和微服务工程 service1, service2,以idea为例 1, new -> project -> Maven -> 填写group ...

  5. Nacos配置中心使用

    在系统开发过程中,开发者通常会将一些需要变更的参数.变量等从代码中分离出来独立管理,以独立的配置文件的形式存在.目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进 ...

  6. Nacos配置中心和服务的注册发现

    在上一篇中,我们已经把Nacos的集群搭建好了,那么既然已经搭建好了,就要在咱们的项目中去使用.Nacos既可以做配置中心,也可以做注册中心.我们先来看看在项目中如何使用Nacos做配置中心. Nac ...

  7. SpringBoot使用Nacos配置中心

    本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...

  8. Nacos配置中心

    本文介绍spring cloud 集成 nacos案例 官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html](https://nacos.io/zh ...

  9. SpringCloud系列之分布式配置中心极速入门与实践

    SpringCloud系列之分布式配置中心极速入门与实践 @ 目录 1.分布式配置中心简介 2.什么是SpringCloud Config? 3.例子实验环境准备 4.Config Server代码实 ...

  10. Spring Cloud Config、Apollo、Nacos配置中心选型及对比

    Spring Cloud Config.Apollo.Nacos配置中心选型及对比 1.Nacos 1.1 Nacos主要提供以下四大功能 2.Spring Cloud Config 3.Apollo ...

随机推荐

  1. 实现.NET 4.0下的Task类相似功能组件

    实现 .NET 4.0 下的 Task 类相似功能:TaskExCum 组件详解 引言 随着 .NET 技术的发展,异步编程模型逐渐成为现代应用程序开发中的标准实践之一..NET 4.5 引入了 Ta ...

  2. Maven 项目获取 git 分支、提交等信息

    git-commit-id-plugin 是一个 Maven 插件,用于在 Maven 项目的构建过程中自动获取 git 仓库的信息,如最后一次提交的 ID.分支名称.构建时间等,并将这些信息注入到项 ...

  3. golang中defer的作用

    defer是golang里面一个很有用的语法,但很多人可能都不太清楚它具体应该怎么用.这里记录一下自己学习到的内容. 应用场景 defer一般用于资源释放,当一个资源申请成功后,经常会在后面写一个de ...

  4. 本地文件包含漏洞详解与CTF实战

    1. 本地文件包含简介 1.1 本地文件包含定义 本地文件包含是一种Web应用程序漏洞,攻击者通过操控文件路径参数,使得服务器端包含了非预期的文件,从而可能导致敏感信息泄露. 常见的攻击方式包括: 包 ...

  5. apache做负载均衡器 配置

    将Apache作为LoadBalance前置机分别有三种不同的部署方式,分别是: 1 )轮询均衡策略的配置 进入Apache的conf目录,打开httpd.conf文件,在文件的末尾加入: Proxy ...

  6. 我是如何从0开始,在23天里完成一款Android游戏开发的 – Part 1 – 开篇与前2天

    本文由 ImportNew - ImportNew读者 翻译自 bigosaur.如需转载本文,请先参见文章末尾处的转载要求. 本文是这个系列的第一篇文章,记录作者的开篇和前2天的情况.文章由 朱新亮 ...

  7. elementUI 表格之合并同类项(包括行和列)

    mergeSpan(tableData, arr) { //["areName","indexCode"] let spanArr = new Array(ta ...

  8. elasticsearch之python操作

    总结使用python对于elasticsearch的常用操作 安装 pip install elasticsearch 2. 连接 from elasticsearch import Elastics ...

  9. windows下执行Python脚本

    由于业务需要,有些python脚本需要在Windows系统上,并且支持定时执行 1) 一. 创建.bat批处理文件 新创建文件并将扩展名改为.bat 二. 写入执行python脚本的语句 @echo ...

  10. log4j2 变量注入漏洞(CVE-2021-44228)

    log4j2 JNDI注入漏洞(CVE-2021-44228) 概述 本文非常详细的从头到尾debug了CVE-2021-44228漏洞的利用过程,喜欢的师傅记得点个推荐~ Apache Log4j2 ...