当前位置: 首页 > news >正文

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.xdnf.cn/news/1447561.html

相关文章:

  • tcpdump用法
  • Best Video网页官网入口 – 免费在线网页视频解析下载器
  • 认识HTML
  • 用资产驱动方法构建汽车网络安全档案
  • VPS云服务器安全加固指南:从入门到精通的全面防护策略
  • TypeScript 内置工具类型大全(ReturnType、Omit、Pick 等)
  • 【Unity项目经验分享】实现左右分屏裸眼3D程序
  • 数据结构之加餐篇 -顺序表和链表加餐
  • 从 0 到 1 实现 PyTorch 食物图像分类:核心知识点与完整实
  • 基础看门狗--idf开发esp32s3
  • PNP具身解读——RSS2025论文加州伯克利RLDG: 通过强化学习实现机器人通才策略提炼。
  • 基于物联网的智慧用电云平台构建与火灾防控应用研究
  • 复杂网络环境不用愁,声网IoT多通道传输实战经验丰富
  • Coze使用教程-插件
  • 袋鼠云产品功能更新报告14期|实时开发,效率再升级!
  • Kafka面试精讲 Day 6:Kafka日志存储结构与索引机制
  • 浏览器插件开发--通过调用本地nmap实现nmap插件扫描
  • python如何解决html格式不规范问题
  • Android使用内存压力测试工具 StressAppTest
  • [嵌入式embed][Qt]Qt5.12+Opencv4.x+Cmake4.x_用Qt编译linux-Opencv库 测试
  • 显存与内存
  • 【甲烷数据】MethaneSAT 卫星遥感数据
  • 使用DCGAN实现动漫图像生成
  • 树莓集团产教融合:数字学院践行职业教育“实体化运营”要求
  • Ubuntu 系统 LVM 逻辑卷扩容教程
  • 中小企业 AI 转型难?成本、技术、人才三重困境下,轻量化解决方案来了
  • 单位冲击响应频谱
  • python-对图片中的头像进行抠图
  • 确定软件需求的方法
  • 小青苔是什么?