Spring Boot + Nacos 配置中心示例工程

1️⃣ 工程结构

nacos-demo├── pom.xml└── src├── main│   ├── java│   │   └── com.example.nacosdemo│   │       ├── NacosDemoApplication.java│   │       ├── config│   │       │   └── AppProperties.java│   │       └── controller│   │           └── HelloController.java│   └── resources│       └── bootstrap.yml

2️⃣ pom.xml

使用 Spring Boot + Spring Cloud Alibaba Nacos Config 依赖:

<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>nacos-demo</artifactId><version>1.0.0</version><properties><java.version>17</java.version><spring.boot.version>3.2.5</spring.boot.version><spring.cloud.version>2023.0.1</spring.cloud.version><spring.cloud.alibaba.version>2023.0.1.0</spring.cloud.alibaba.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring.boot.version}</version><type>pom</type><scope>import</scope></dependency><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><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><!-- Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Nacos Config --><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-actuator</artifactId></dependency></dependencies>
</project>

3️⃣ bootstrap.yml

bootstrap.yml 会在应用启动早期加载,确保 Nacos 配置优先注入:

spring:application:name: nacos-democloud:nacos:config:server-addr: 127.0.0.1:8848namespace: publicgroup: DEFAULT_GROUPfile-extension: yamlrefresh-enabled: truemanagement:endpoints:web:exposure:include: "*"

4️⃣ 配置类 AppProperties.java

package com.example.nacosdemo.config;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;@Component
@RefreshScope // 支持动态刷新
@ConfigurationProperties(prefix = "app")
public class AppProperties {private String message = "default message";public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}

5️⃣ 控制器 HelloController.java

package com.example.nacosdemo.controller;import com.example.nacosdemo.config.AppProperties;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {private final AppProperties appProperties;public HelloController(AppProperties appProperties) {this.appProperties = appProperties;}@GetMapping("/hello")public String hello() {return "Message from Nacos: " + appProperties.getMessage();}
}

6️⃣ 启动类 NacosDemoApplication.java

package com.example.nacosdemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class NacosDemoApplication {public static void main(String[] args) {SpringApplication.run(NacosDemoApplication.class, args);}
}

7️⃣ Nacos 配置中心添加配置

在 Nacos 控制台添加一个配置:

  • Data ID: nacos-demo.yaml(与 spring.application.name + .yaml 对应)
  • Group: DEFAULT_GROUP
  • 内容
app:message: Hello from Nacos!

8️⃣ 启动与测试

  1. 启动本地 Nacos(默认端口 8848)
  2. 启动 Spring Boot 应用
  3. 访问 http://localhost:8080/hello → 返回 Message from Nacos: Hello from Nacos!
  4. 在 Nacos 控制台修改 app.message → 保存
  5. 再次访问 /hello,无需重启应用即可看到新值(因为 @RefreshScope + refresh-enabled: true

总结
这个示例展示了:

  • @ConfigurationProperties 从 Nacos 拉取配置
  • @RefreshScope 支持动态刷新
  • bootstrap.yml 提前加载远程配置
  • 最小依赖组合,直接可运行

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

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

相关文章

(二)文件管理-基础命令-pwd命令的使用

文章目录1. 命令格式2. 基本用法3. 高级用法4. 注意事项1. 命令格式 pwd [OPTION]...[OPTION]: 可选选项&#xff0c;用于改变命令的默认行为。最主要的两个选项是 -L 和 -P。它不需要任何参数&#xff08;如文件名或目录名&#xff09; 2. 基本用法 用法&#xff1a;pwd 是…

Leetcode_202.快乐数_三种方法解决(普通方法解决,哈希表解决,循环链表的性质解决_快慢指针)

目录第一种方法&#xff1a;暴力解法暴力ac代码&#xff1a;第二种方法&#xff1a;哈希表哈希表ac代码:第三种方法&#xff1a;根据循环链表的性质(快慢指针)第一种方法&#xff1a;暴力解法 最暴力的思路就是直接使用循环往下一直计算&#xff0c;这样特别浪费时间&#xff…

代码随想录刷题Day48

这次博客主要是对做过的关于二叉树系列的题目进行整理和分类。二叉树&#xff0c;要处理整个树&#xff0c;一般少不了遍历。遍历主要可以分为&#xff1a;递归系列、层序遍历。如果不遍历的话&#xff0c;那就是处理特殊的树了&#xff0c;比如完全二叉树。递归系列基本的递归…

汽车工装结构件3D扫描尺寸测量公差比对-中科米堆CASAIM

汽车制造过程中&#xff0c;工装结构件的尺寸精度对整车装配质量和生产进度有重要影响。传统测量工具如卡尺和三坐标测量机采用接触式工作方式&#xff0c;检测过程耗时较长&#xff0c;对于具有复杂曲面特征的工件&#xff0c;难以全面获取尺寸数据。激光三维扫描技术改变了传…

Docker Pull 代理配置方法

本文介绍通过网络代理加速Docker镜像拉取的方法。 配置方法 当执行docker pull从Docker Hub 拉取镜像时&#xff0c;其网络连接由守护进程docker daemon进行维护。 要修改其代理设置&#xff0c;可配置其systemd服务&#xff0c;步骤如下&#xff1a; &#xff08;1&#xf…

机电装置:从基础原理到前沿应用的全方位解析

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1 机电装置的基本概念与发展历程 机电装置&#xff08;Mechatronic D…

《SVA断言系统学习之路》【03】关于布尔表达式

序列中使用的表达式基于其所含变量的采样值进行评估。表达式评估的结果为布尔值&#xff0c;其解释方式与过程性if语句条件中的表达式完全相同&#xff1a;若表达式计算结果为X、Z 或 0&#xff0c;则被解释为假&#xff1b;否则即为真。但是&#xff0c;对可出现在并发断言中的…

指针高级(2)

6.数组指针#include <stdio.h> int main() {/*练习&#xff1a;利用指针遍历数组*///1.定义数组int arr[] { 10,20,30,40,50 };int len sizeof(arr) / sizeof(int);//2.获取数组的指针//实际上获取的&#xff1a;数组的首地址int* p1 arr;int* p2 &arr[0];printf…

如何高效记单词之:抓住首字母——以find、fund、fond、font为例

find、fund、fond、font这几个单词&#xff0c;你都认识吗&#xff1f;这几个单词&#xff0c;意思大体如下&#xff1a; find v.找到&#xff1b;发现fund n.基金fond a.喜欢的&#xff1b;喜爱的&#xff1b;深情的font n.字体&#xff0c;字型&#xff0c;字形 这几个单词在…

Ubuntu下把 SD 卡格式化为 FAT32

在 Ubuntu 下把 SD 卡格式化为 FAT32&#xff0c;按下面做&#xff08;会抹掉整卡数据⚠️&#xff09;&#xff1a; 1) 找到你的 SD 卡设备名 lsblk -p记下整盘设备&#xff0c;比如 /dev/sdb&#xff08;USB 读卡器常见&#xff09;或 /dev/mmcblk0&#xff08;内置读卡器&am…

涉私数据安全与可控匿名化利用机制研究(上)

文章目录前言一、涉私数据的概述及分类&#xff08;一&#xff09;涉私数据的“知情同意原则”&#xff08;二&#xff09;涉私数据的分类二、涉私数据可控匿名化利用机制&#xff08;一&#xff09;数据产品与涉私数据的利用形式&#xff08;二&#xff09;通过可信数据空间受…

Redis 的跳跃表:像商场多层导航系统一样的有序结构

目录 一 、从 "超市货架" 的痛点看跳跃表的价值 1.1、跳跃表与商场导航系统的结构对应 1. 1.1、zskiplistNode&#xff1a;带导航标记的 "商品"&#xff08;跳跃表节点&#xff09; 1.1.1.1、level []&#xff1a;商品上的多层导航标记 1.1.1.2、back…

小程序点击之数据绑定

<return /><view class"all-wrap" style"padding-top:{{topHeight}}px;"><view class"my-title">我的收藏</view><scroll-viewclass"collect-list-container"scroll-yscroll-top"{{scrollTop}}"…

数据结构——顺序表和单向链表(2)

目录 前言 一、单向链表 1、基本概念 2、单向链表的设计 &#xff08;1&#xff09;节点设计 &#xff08;2&#xff09;初始化空单向链表 &#xff08;3&#xff09;、初始化数据节点 &#xff08;4&#xff09;数据节点 &#xff08;5&#xff09;判断链表是否为空 …

More Effective C++ 条款26:限制某个类所能产生的对象数量

More Effective C 条款26&#xff1a;限制某个类所能产生的对象数量核心思想&#xff1a;通过控制类的实例化过程&#xff0c;限制程序中该类的对象数量&#xff0c;可以防止资源过度使用&#xff0c;确保系统资源合理分配&#xff0c;并实现单例或有限实例模式。 &#x1f680…

CMS系统维护中常见的安全威胁及防护指南!

内容管理系统&#xff08;CMS&#xff09;已成为网站建设的核心工具&#xff0c;但随之而来的安全风险却常被低估。超过70%的网站使用CMS构建&#xff0c;而其中近半数曾遭遇安全漏洞威胁。作为运维人员和开发者&#xff0c;了解这些安全威胁并采取相应防护措施至关重要。 一、…

springboot knife4j 接口文档入门与实战

Spring Boot3 Knife4j 项目地址https://gitee.com/supervol/loong-springboot-study&#xff08;记得给个start&#xff0c;感谢&#xff09;Knife4j 介绍在国内 Java 开发领域&#xff0c;Knife4j 是一款广受欢迎的 API 文档工具&#xff0c;它基于 OpenAPI 规范&#xff0c;在…

Spring Boot 事务失效的八大原因及解决方案详解

在 Spring Boot 项目开发中&#xff0c;声明式事务管理通过 Transactional 注解提供了极大的便利。但许多开发者都曾遇到过事务不生效的困扰。本文将详细分析导致 Spring Boot 事务失效的八大常见情况&#xff0c;并提供相应的解决方案。1. 数据库引擎不支持事务问题分析&#…

数据结构:顺序栈与链栈的原理、实现及应用

数据结构详解&#xff1a;顺序栈与链栈的原理、实现及应用 1. 引言&#xff1a;栈的核心概念 栈&#xff08;Stack&#xff09;是一种重要的线性数据结构&#xff0c;它遵循后进先出&#xff08;Last In First Out, LIFO&#xff09;的原则。这意味着最后一个被添加到栈中的元素…

apipost 8.x 脚本循环调用接口

apipost 8.x 脚本循环调用接口背景实现先说整体逻辑&#xff1a;最后背景 上周为了找某OA 偶尔出现的诡异现象&#xff0c;需要用测试工具来压测&#xff0c;看看这个问题能否重现。以前用过Jmeter&#xff0c;但是没有装&#xff0c;正好有个国产的apipost看看如何&#xff1…