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

Spring Cloud Alibaba 2022集成Nacos

摘要:spring cloud alibaba2022版本分布式框架搭建示例之集成Nacos。

一、pom.xml文件新增依赖配置

父项目的pom.xml新增nacos注册中心与配置中心,截图如下,版本仍然是2022.0.0.0(因为2022.0.0.0版本的spring-cloud-alibaba-dependencies的jar里包含nacos的注册中心与配置中心的依赖包)。

<!-- Nacos注册中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${spring-cloud-alibaba.version}</version> </dependency> <!-- Nacos配置中心 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${spring-cloud-alibaba.version}</version> </dependency>

子项目user-service里的pom.xml文件,添加nacos的注册中心与配置中心。

<!-- Nacos注册中心 --> <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>

二、nacos里新建命名空间

新建一个dev命名空间,作为开发环境的配置。

三、子项目新建bootstrap.ym((删除原来application.yml文件)

bootstrap.yml文件

spring: application: name: order-service cloud: # 配置Nacos nacos: # 配置Nacos配置中心 config: server-addr: 127.0.0.1:8848 namespace: 2462763c-8aac-4783-ba62-030d43f95e52 file-extension: yml # 配置Nacos服务发现 discovery: server-addr: 127.0.0.1:8848 namespace: 2462763c-8aac-4783-ba62-030d43f95e52 config: import: - nacos:${spring.application.name}-${spring.profiles.active} logging: file: path: classpath:logback-spring.xml

四、启动类添加注解@EnableDiscoveryClient

package org.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient // 启用服务发现客户端 public class GoodsServiceApplication { public static void main( String[] args ) { SpringApplication.run(UserServiceApplication.class, args); } }

成功启动运行类后如下。

2026-06-29 16:37:25.330 INFO 5624 --- [ main] c.a.c.n.refresh.NacosContextRefresher : [Nacos Config] Listening config: dataId=user-service, group=DEFAULT_GROUP 2026-06-29 16:37:25.958 INFO 5624 --- [RMI TCP Connection(1)-192.168.0.49] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2026-06-29 16:37:25.961 INFO 5624 --- [RMI TCP Connection(1)-192.168.0.49] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2026-06-29 16:37:25.963 INFO 5624 --- [RMI TCP Connection(1)-192.168.0.49] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms

五、查看nacos的服务列表是否注册成功

六、扩展——nacos动态参数的配置

说明:拿user-service项目做演示配置。

6.1、nacos新建配置文件

配置内容如下:

user: configKey: test-config3

6.2、新建一个配置管理类

package org.example.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; @Data @Component @RefreshScope // 支持配置刷新 @ConfigurationProperties(prefix = "user") // 使用prefix指定配置前缀,例如user.*将被注入到此类的属性中。 public class ApplicationConfigManager { private String configKey; }

6.3、启动类配置注解@EnableConfigurationProperties

package org.example; import org.example.config.ApplicationConfigManager; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient // 启用服务发现客户端 @EnableConfigurationProperties(ApplicationConfigManager.class) //启用配置属性 public class GoodsServiceApplication { public static void main( String[] args ) { SpringApplication.run(UserServiceApplication.class, args); } }

6.4、验证动态值

6.4.1、DemoController的修改

package org.example.controller; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.example.config.ApplicationConfigManager; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping(value = "/demo") @AllArgsConstructor // 自动注入依赖 public class DemoController { private final ApplicationConfigManager applicationConfigManager; @GetMapping(value = "/getNacosConfigValue") public String test(){ log.info("测试获取nacos的动态配置"); return applicationConfigManager.getConfigKey(); } }

6.4.2、启动项目访问web接口变量的赋值

6.4.3、修改nacos配置文件的变量值

nacos的变量值修改保存后,服务有监听到之变有变更,日志如下:

6.4.4、访问web接口变量的赋值

http://www.jsqmd.com/news/1191834/

相关文章:

  • RK3588 HDMI-IN功能实战:从设备树配置到应用调试全解析
  • 手搓生产级 AI Agent 系统(2):工具系统深度实战——从参数校验到沙箱安全
  • Unity XLua热更新报错:Span与ReadOnlySpan类型缺失的深度解析与解决方案
  • GCC警告与优化协同配置:解决C++发布版本崩溃难题
  • Claude Code到底能不能干活?别只看 Demo 和跑分
  • 2026年7月最新南宁卡地亚官方售后维修服务网点地址与客服电话 - 卡地亚服务中心
  • Claude Code高效协作指南:claude.md编写规范与工程实践
  • 2026加密算法全景解析:从AES到后量子密码的实战指南
  • 零代码自动化:从重复操作到AI增强工作流的实践指南
  • 2026年苏州线切割设备靠谱生产服务商介绍:线切割机、放电切割机、阳极切割机设备制造企业 - 海棠依旧大
  • Armadillo预编译版在Windows+VS2022下的实战配置与性能优化
  • SpringCloud生态下的新选择:深入剖析PowerJob的分布式调度核心机制
  • STM32(三):外部中断实战避坑指南(标准库函数)
  • SpringBoot+Vue实战:从零构建一个课堂管理系统
  • 可行性研究实战:从经典习题到现代系统分析的思维跃迁
  • Unreal Engine模块加载失败全解析:从原理到排查的完整指南
  • C++ BOOST库实战指南:从智能指针到异步网络编程
  • 《AI辅助前端开发-10:避坑与进阶篇》
  • 2026 年 7 月新发布:揭西靠谱的止回式风帽订做厂家格局重塑与选型新思路,别等屋顶漏水才后悔!这玩意儿可能正让你家霉菌肆虐 - 实业推荐官【官方】
  • C++性能优化进阶:从代码技巧到工程体系的7个核心秘诀
  • C++浮点数输出精度控制:std::cout与<iomanip>实战指南
  • MySQL 崩溃恢复过程分析-元一软件
  • 2026年7月最新徐州格拉苏蒂官方售后维修服务网点地址与客服电话 - 亨得利钟表维修中心
  • (实战指南)STM32自定义通信协议:从帧结构设计到代码移植详解
  • VS Code原生AI编程:Cline插件深度集成Kimi k2实战指南
  • Unity URP汽车展览Demo实战:从场景搭建到交互实现
  • CandyForum / CandyBook
  • 把团队带废的5个坏习惯
  • 从道路边沿拟合到模型泛化:最小二乘与正则化的工程实践
  • 小米智能音箱Pro评测:300元价位如何实现千元音质与智能体验