Spring Cloud学习笔记(Nacos):配置中心基础和代码样例

这是本人学习的总结,主要学习资料如下
- 马士兵教育

  • 1、Overview
  • 2、样例
    • 2.1、Dependency
    • 2.2、配置文件的定位
    • 2.3、bootstrap.yml
    • 2.4、配置中心新增配置
    • 2.5、验证

1、Overview

配置中心用于管理配置项和配置文件,比如平时写的application.yml就是配置文件。

我们可以把配置文件存在配置中心中,然后动态获取配置文件。更方便的是,我们可以动态修改配置文件,在不重启系统的情况下更新配置。


2、样例

我会建立一个Spring项目,将其注册到Nacos中,然后从Nacos动态获取配置。

2.1、Dependency

首先是作为一个普通的Client需要注册到Nacos中,另外想要从Nacos中获取配置则需要加上spring-cloud-starter-alibaba-nacos-config这个依赖。

<dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

2.2、配置文件的定位

配置中心有多个配置文件,我们需要一些主键来定位确定我们的项目使用哪个配置文件。

配置文件的主键由namespacegroupspring.profiles.activespring.application.namespring.cloud.nacos.config.file-extension组成,其中spring.profiles.activespring.application.namespring.cloud.nacos.config.file-extension这三个组成一个叫dataId的东西。

  • namespace和注册中心的意义相同。它通常代表着一个环境,所有的东西都要装进一个namespace里面。默认使用叫public的命名空间,可以用spring.cloud.nacos.config.namespace指定。
  • group也是和注册中心的意义相同,它通常代表一个业务,比如order-group。默认是DEFAULT_GROUP,可以用spring.cloud.nacos.config.group指定,要注意的是指定的是命名空间的id而不是name。
  • spring.profiles.activespring.application.name,Spring项目的配置。
  • spring.cloud.nacos.config.file-extension,表示配置文件的后缀名。
  • dataId,由spring.profiles.activespring.application.namespring.cloud.nacos.config.file-extension三者组成,需要在配置中心填写。组成规则是${spring.application.name}-${spring.profiles.active}.${file-extension}。比如说applicationNamenacos-config-clientprofiledevfile-extensionyaml,那么dataId就是nacos-config-client-dev.yaml

2.3、bootstrap.yml

我们需要配置关于配置中心的内容,比如配置中心的地址,配置中心的配置文件的后缀名等等。

所以关于配置中心的配置需要在项目启动前加载。而bootstrap.ymlapplication.ylm之前加载,所以关于配置中心的配置我们都会选择放在bootstrap.yml中。

前面的配置是项目作为Nacos的Client需要配置的。只有在spring.cloud.nacos.config才是关于配置中心的。该例子中设置了配置中心的地址是localhost:8848,拉取后缀名是yaml的文件。

# nacos配置
server:port: 3377spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #Nacos服务注册中心地址config:server-addr: localhost:8848 #Nacos作为配置中心地址file-extension: yaml #指定yaml格式的配置# group: DEFAULT_GROUP 默认值,不写默认是DEFAULT_GROUP

这里或许会有些奇怪,配置中心那么多配置文件,不需要指定配置文件名可以获取到我们想要的那个文件吗?这里是涉及到dataId的命名规则,在后续会讲到。


application.yml的内容比较简单,只是设置了当前的profile

spring:profiles:active: dev

2.4、配置中心新增配置

点击Nacos管理页面右上角的加号就可以新增配置。
在这里插入图片描述
配置时有两个值必填,一个是dataId,另一个是group。这两个值相当于是该配置文件的主键。

dataId,它的值必须遵循一定的规则。

dataId必须是这样的格式${spring.application.name}-${spring.profiles.active}.${file-extension}

在这里例子当中,spring.application.name=nacos-config-clientspringprofiles.active=devfile-extension=yaml

所以dataId必须是nacos-config-client-dev.yaml。只有这样Nacos才知道当前新增的配置文件是属于哪个Client的。

我们新增一个配置config.info=hello。具体截图如下,必须注意,每个冒号后面都要接一个空格。

在这里插入图片描述


group的默认值是DEFAULT_GROUP,我们在bootstrap.yml中不明确写spring.cloud.nacos.config.group的值的话,那Spring项目默认是拉取group=DEFAULT_GROUP的配置文件


2.5、验证

用下面的代码验证系统是否读取到了配置中心的配置。

注意@RefreshScope这个注解,这个注解能让我们一直获取到最新的配置,并且不用重启项目。

@RestController
@RefreshScope
public class ConfigController {@Value("${config.info}")private String configInfo;@GetMapping("/config/info")public String getConfigInfo(){return configInfo;}
}

获取config.info成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Security + OAuth2】OAuth2

Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、OAuth2简介1.1、OAu…

Linux驱动开发笔记(二) 基于字符设备驱动的I/O操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…

【2024最新华为OD-C卷试题汇总】传递悄悄话的最长时间(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…

东哥一句兄弟,你还当真了?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 你还真把自己当刘强东兄弟了?谁跟你是兄弟了?你在国外的房子又不给我住&#xff0c;你出去旅游也不带上我!都成人年了&#xff0c;东哥一句客套话&#xff0c;别当真! 今天&#xff0c;东哥在高管会上直言&…

[数据结构] -- 单链表

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…

c++编程14——STL(3)list

欢迎来到博主的专栏&#xff1a;c编程 博主ID&#xff1a;代码小豪 文章目录 list成员类型构造、析构、与赋值iterator元素访问修改元素list的操作 list list的数据结构是一个链表&#xff0c;准确的说应该是一个双向链表。这是一个双向链表的节点结构&#xff1a; list的使用…

Vue学习笔记3——事件处理

事件处理 1、事件处理器&#xff08;1&#xff09;内联事件处理器&#xff08;2&#xff09;方法事件处理器 2、事件参数3、事件修饰符 1、事件处理器 我们可以使用v-on 指令(简写为)来监听DOM事件&#xff0c;并在事件触发时执行对应的JavaScript。 用法: v-on:click"me…

JVM学习-执行引擎

执行引擎 执行引擎是Java虚拟机核心组成部分之一虚拟机是一个相对于物理机的概念&#xff0c;这两种机器都有代码执行能力&#xff0c;其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的&#xff0c;而虚拟机的执行引擎是由软件自行实现的&#xf…

【算法】递归、搜索与回溯——简介

简介&#xff1a;递归、搜索与回溯&#xff0c;本节博客主要是简单记录一下关于“递归、搜索与回溯”的相关简单概念&#xff0c;为后续算法做铺垫。 目录 1.递归1.1递归概念2.2递归意义2.3学习递归2.4写递归代码步骤 2.搜索3.回溯与剪枝 递归、搜索、回溯的关系&#xff1a; …

ICML2024 定义新隐私保护升级:DP-BITFIT新型微调技术让AI模型学习更安全

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;差分隐私在大模型微调中的重要性和挑战 在当今的深度学习领域&#xff0c;大型预训练模型的微调已成为提高各种任务性能的关键技术。然而&am…

推特热帖:大语言模型自荐能够替代的20种人类工作!快来看你是否需要转行!

最近推特上有一个例子引起了广泛的讨论&#xff0c;事情的起因是这样的&#xff1a;网友让 GPT-4o 预测一下自己未来将会替代人类哪些工作&#xff1f; 这听起来很有趣&#xff01;GPT-4o会给出什么样的预测呢&#xff1f; 3.5研究测试&#xff1a;hujiaoai.cn 4研究测试&…

02-Linux【基础篇】

一、Linux的目录结构 1.基本介绍 Linux的文件系统采用层级式的树状目录结构&#xff0c;在此结构中的最上层是根目录"/"&#xff0c;然后在此目录下再创建其他的目录 深刻理解Linux树状文件目录是非常重要的 记住一句经典的话&#xff1a;在Linux世界里&#xff…

如何在 DigitalOcean Droplet 云主机上创建 Ubuntu 服务器

在本文中&#xff0c;你将通过 DigitalOcean 的管理面板创建一个 Ubuntu 服务器&#xff0c;并将其配置为使用你的 SSH 密钥。设置好服务器后&#xff0c;你可以在其上部署应用程序和网站。 本教程是DigitalOcean云课程简介的一部分&#xff0c;它指导用户完成将应用程序安全地…

win10右键没有默认打开方式的选项的处理方法

问题描述 搞了几个PDF书籍学习一下&#xff0c;不过我不想用默认的WPS打开&#xff0c;因为WPS太恶心人了&#xff0c;占用资源又高。我下载了个Sumatra PDF&#xff0c;这时候我像更改pdf文件默认的打开程序&#xff0c;发现右击没有这个选项。 问题解决 右击文件–属性–…

汽车以太网发展现状及挑战

一、汽车以太网技术联盟 目前推动汽车以太网技术应用与发展的组织包括&#xff1a;OPEN Alliance&#xff08;One-Pair Ether-Net Alliance SIG&#xff09;联盟&#xff0c;主要致力于汽车以太网推广与使用&#xff0c;该联盟通过推进 BroadR- Reach 单对非屏蔽双绞线以太网传…

设计新境界:大数据赋能UI的创新美学

设计新境界&#xff1a;大数据赋能UI的创新美学 引言 随着大数据技术的蓬勃发展&#xff0c;它已成为推动UI设计创新的重要力量。大数据不仅为界面设计提供了丰富的数据资源&#xff0c;还赋予了设计师以全新的视角和工具来探索美学的新境界。本文将探讨大数据如何赋能UI设计…

面试八股之JVM篇3.5——垃圾回收——G1垃圾回收器

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

常见 JVM 面试题补充

原文地址 : 26 福利&#xff1a;常见 JVM 面试题补充 (lianglianglee.com) CMS 是老年代垃圾回收器&#xff1f; 初步印象是&#xff0c;但实际上不是。根据 CMS 的各个收集过程&#xff0c;它其实是一个涉及年轻代和老年代的综合性垃圾回收器。在很多文章和书籍的划分中&…

SpringCloud Alibaba的相关组件的简介及其使用

Spring Cloud Alibaba是阿里巴巴为开发者提供的一套微服务解决方案&#xff0c;它基于Spring Cloud项目&#xff0c;提供了一系列功能强大的组件&#xff0c;包括服务注册与发现、配置中心、熔断与限流、消息队列等。 本文将对Spring Cloud Alibaba的相关组件进行简介&#xff…

ROCm上运行预训练BERT

14.10. 预训练BERT — 动手学深度学习 2.0.0 documentation (d2l.ai) 下载数据集 在d2l-zh/pytorch/data目录解压&#xff1a; ~/d2l-zh/pytorch/data$ unzip wikitext-2-v1.zip Archive: wikitext-2-v1.zipcreating: wikitext-2/inflating: wikitext-2/wiki.test.tokens …