《Spring Boot 4 与 Nacos 3.2.3 最强整合实战:配置管理 + 服务发现全解析》

发布时间:2026/7/24 23:02:19

《Spring Boot 4 与 Nacos 3.2.3 最强整合实战:配置管理 + 服务发现全解析》
Spring Boot 4.x 已全面拥抱 Jakarta EE 10底层基于 Spring Framework 6.x最低要求 JDK 17。Nacos 3.2.3 作为阿里云开源的最新稳定版不仅支持 gRPC 长连接还大幅提升了 AP 集群的可用性。两者结合堪称Java 微服务领域的新一代“黄金搭档”。适用场景微服务架构、云原生配置中心、服务注册与发现硬性要求JDK 17、Nacos 3.0.0、Spring Boot 4.1.0本文将从零开始手把手带你完成说明:笔者这里只是Demo Nacos 部署的单机版Nacos 3.2.3 单机Spring Boot 4.1.0 项目初始化配置中心动态刷新RefreshScope服务注册与发现Feign 客户端调用常见坑及解决方案环境准备踩坑预警组件版本备注JDK17推荐 21 LTS必须使用--enable-preview笔者JDK 安装的 JDK 25Spring Boot4.1.0当前最新 M2需使用 Spring Initializr 或手动调整 parentNacos Server3.2.3从 GitHub Release 下载Maven3.9笔者使用的 3.9.16Nacos 3.2.3 快速启动单机版Nacos 3.2.3 官网配置说明笔者提醒: Nacos 3.2.3 版本部署后共有三个端口。1.nacos.server.main.port8848原生核心端口含义这是 Nacos最核心的主端口也是兼容 2.x 时代的“万能入口”。作用处理HTTP 协议的请求。包括控制台的 API 调用、Spring Boot 应用通过application.yml拉取配置Config、服务实例的心跳上报HTTP 模式、以及 Admin 管理接口。注意虽然 3.x 默认建议用 gRPC但8848依然是所有客户端必须能访问的入口端口因为客户端初始化时首先会连接它进行握手和地址拉取。2.9848gRPC 长连接核心端口含义这是gRPC 协议的服务端监听端口。它不是让你在配置文件里手写的而是由8848自动偏移计算得出的计算规则main.port 1000即 8848 1000 9848。作用服务注册与发现核心Spring Boot 4.x 应用注册到 Nacos 时心跳维持、服务实例列表的实时推送Push全部走的是这个 9848 端口。配置长轮询配置中心的动态刷新监听Long Polling也复用该 gRPC 连接。致命坑点必看如果你的 Spring Boot 应用部署在容器或 K8s 中必须在安全组/防火墙中同时开放8848和9848。如果只开8848不开9848你的服务可以启动能拉取一次配置但几秒后就会报错断开连接且无法收到配置变更推送3.nacos.console.port8080独立控制台 Web 端口——3.x 新增含义这是 Nacos 3.x将前端界面Console UI与后端 API 剥离后的独立端口。作用专用于提供 Nacos 可视化控制台的网页资源HTML/CSS/JS和登录页面。为什么拆分为了让运维人员可以只将8080暴露给公网用于 UI 访问而将8848和9848封闭在内网提高 API 安全性。访问地址现在变成了http://你的IP:8080/nacos注意不再是 8848。注意如果该端口被占用启动会报错你可以通过-Dnacos.console.port8081修改。4.nacos.ai.registry.port9080AI 模型注册专用端口——3.x 重磅新特性含义这是 Nacos 3.2.3 专门为AI 原生场景开辟的独立 HTTP 端口。作用专用于AI 智能体Agent和大模型LLM的注册与发现。它走的是独立的语义化注册流程支持向量检索和元数据模糊匹配与传统的 Java 微服务Spring Boot注册逻辑隔离。对你当前文章的影响如果你是标准的 Spring Boot 4.x 微服务并不需要用到这个端口你的应用也不会连它。它只服务于 Python 的 AI 客户端如 Nacos-SDK-Python 3.x。如果你在写微服务实战可以在文末提一句“AI 端口仅供模型注册不影响业务服务”显得你研究得很深。如果连接超时可以试试 开放 所有使用到的端口号startup.sh -m standalone⚠️ 特别提醒linux 如果已经安装了低版本JDK需要修改一下startup.sh 启动文件在启动文件中指定新安装的高版本JDK路径即可如上图。 windows 环境一样。启动部署成功后访问:创建 Spring Boot 4.1.0 项目1. 父项目pom文件?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version4.1.0/version relativePath/ /parent groupIdcom.work/groupId artifactIdsirius-workspace/artifactId version1.0/version packagingpom/packaging modules modulesirius-iaas/module modulesirius-common/module modulesirius-iaas/gateway/module /modules properties java.version25/java.version spring-cloud.version2025.1.2/spring-cloud.version spring-cloud-alibaba.version2025.1.0.0/spring-cloud-alibaba.version cloud-starter-bootstrap.version5.0.2/cloud-starter-bootstrap.version webmvc-ui.version3.0.3/webmvc-ui.version hutool.version5.8.21/hutool.version mysql.version8.4.0/mysql.version mybatis-plus.version3.5.17/mybatis-plus.version dynamic.version4.5.0/dynamic.version commons-lang3.version3.20.0/commons-lang3.version jjwt.version0.13.0/jjwt.version jasypt.version4.0.4/jasypt.version validation.version4.1.0/validation.version /properties dependencies dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId /dependency /dependencies !-- 依赖管理 先指定版本 后面就不需要指定版本了-- dependencyManagement dependencies !-- 1. Spring Cloud 依赖 BOMBill of Materials 作用统一管理 Spring Cloud 生态下所有组件如 OpenFeign、LoadBalancer、Gateway的版本。 原理typepom scopeimport 会将此 POM 中的 dependencyManagement 导入当前工程 避免为每个微服务组件单独指定版本号确保版本兼容性。 -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-dependencies/artifactId version${spring-cloud.version}/version typepom/type scopeimport/scope /dependency !-- 2. Spring Cloud Alibaba 依赖 BOM 作用统一管理 Alibaba 系微服务组件版本包括 - Nacos服务注册/配置中心 - Sentinel流量熔断/限流 - Seata分布式事务 注意请确保 ${spring-cloud-alibaba.version} 与上方的 Spring Cloud 版本严格对应。 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version${spring-cloud-alibaba.version}/version typepom/type scopeimport/scope /dependency !-- 3. Spring Cloud Bootstrap 启动器 作用让 Spring Boot 应用重新支持读取 bootstrap.yml / bootstrap.properties 配置文件。 -- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-bootstrap/artifactId version${cloud-starter-bootstrap.version}/version /dependency !-- 4. Hutool 全量工具包 作用提供丰富的 Java 工具方法涵盖字符串处理、日期计算、加密解密、HTTP 客户端、Excel 导出、二维码生成等。比 Apache Commons 更简洁且无额外依赖。 -- dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version${hutool.version}/version /dependency !-- springfox-swagger2 生成 OpenAPI v2 (Swagger 2.0) 格式的 RESTful API 文档接口。-- dependency groupIdorg.springdoc/groupId artifactIdspringdoc-openapi-starter-webmvc-ui/artifactId version${webmvc-ui.version}/version scopecompile/scope /dependency !--MySQL JDBC 驱动-- dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId version${mysql.version}/version scopecompile/scope /dependency !-- 动态数据源多数据源Starter -- dependency groupIdcom.baomidou/groupId artifactIddynamic-datasource-spring-boot-starter/artifactId version${dynamic.version}/version /dependency !-- mybatis-plus-boot-starter 自动配置 SqlSessionFactory、事务管理、分页插件等并提供通用 Mapper、条件构造器等增强功能。 -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version${mybatis-plus.version}/version scopecompile/scope /dependency !--mybatis-plus-annotation -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-annotation/artifactId version${mybatis-plus.version}/version scopecompile/scope /dependency !-- commons-lang3-提供 Java 核心库的增强工具类 -- dependency groupIdorg.apache.commons/groupId artifactIdcommons-lang3/artifactId version${commons-lang3.version}/version /dependency !-- JWT 令牌支持 -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version${jjwt.version}/version /dependency !-- JJWT 的默认实现模块提供 JWT 签名、加密等具体逻辑。 -- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-impl/artifactId version${jjwt.version}/version scoperuntime/scope /dependency !--将 Jackson 作为 JJWT 的 JSON 序列化/反序列化实现-- dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-jackson/artifactId version${jjwt.version}/version scoperuntime/scope /dependency !-- 对 Spring Boot 配置文件 中的敏感信息如数据库密码、密钥进行加密和解密只需在配置中使用 ENC(加密值) 格式自动在运行时解密。 -- dependency groupIdcom.github.ulisesbocchio/groupId artifactIdjasypt-spring-boot-starter/artifactId version${jasypt.version}/version scopecompile/scope /dependency !-- spring-boot-starter-validation 对 Controller 入参、Service 层方法参数及实体类字段进行声明式校验。-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId version${validation.version}/version scopecompile/scope /dependency /dependencies /dependencyManagement /project2. 子项目pom文件?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdcom.work/groupId artifactIdsirius-workspace/artifactId version1.0/version relativePath../../pom.xml/relativePath /parent artifactIdgateway/artifactId description系统网关/description dependencies !-- 引入Spring Boot核心 -- dependency groupIdcom.work/groupId artifactIdsirius-common/artifactId version1.0/version /dependency !-- gateway 网关-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-gateway/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !--gateway网关负载均衡依赖-- dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-loadbalancer/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-bootstrap/artifactId /dependency !--限流引入redis-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis-reactive/artifactId /dependency dependency groupIdorg.apache.commons/groupId artifactIdcommons-pool2/artifactId /dependency !-- Jasypt -- dependency groupIdcom.github.ulisesbocchio/groupId artifactIdjasypt-spring-boot-starter/artifactId /dependency /dependencies build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build /project2. 配置文件bootstrap.yml必选#启用配置文件 spring: profiles: active: ${profile:dev}2. 1 配置文件bootstrap-dev.yml必选spring: application: name: gateway cloud: nacos: discovery: server-addr: ${NACOS_SERVER:127.0.0.1:19110} namespace: ${NAME_SPACE:mation} username: ENC(kk6UhLPBlBwrj0IEY/MrxMidlUDI4XrpA7KbVHDEWsq1qAceSGP9q0sYMWODWky9) password: ENC(b7rpZxmlFOLK8R9hSKVu7RTFJp/JHcmATdBICFfw8027w6d3OSfE5fzbrpCz5iMoJ67mfj8xIzt8GHcyyTphTw) group: ${GROUP_ID:DEFAULT_GROUP_DEV} config: server-addr: ${NACOS_SERVER:127.0.0.1:19110} file-extension: yaml namespace: ${NAME_SPACE:mation} username: ENC(kk6UhLPBlBwrj0IEY/MrxMidlUDI4XrpA7KbVHDEWsq1qAceSGP9q0sYMWODWky9) password: ENC(b7rpZxmlFOLK8R9hSKVu7RTFJp/JHcmATdBICFfw8027w6d3OSfE5fzbrpCz5iMoJ67mfj8xIzt8GHcyyTphTw) group: ${GROUP_ID:DEFAULT_GROUP_DEV} refresh-enabled: true enabled: true bootstrap: enabled: true # nacos:${spring.application.name}-dev.yaml?groupDEFAULT_GROUP_DEVnamespacemationserver-addr127.0.0.1:19110 加密原字符串 config: import: ENC(JHcmATdBICFlFOLK8R9hSKVu7RTFJp/JHcmATdBICFfw8027w6d3OSfE5fzbrpCz5iMoJ67mfj8xIzt8GHcyyTphTBICFfw8027ww/MrxMidlUDI4XrpA7KbVHDEWsq1qAceSGP) logging: level: com.alibaba.nacos.client.naming: WARN com.alibaba.nacos: WARN jasypt: encryptor: password: ${JASYPT_PASSWORD}注: nacos 3.2.3 配置方式已经换成了spring.config.import,但是上面那个spring.cloud.nacos.config 也不能删除启动会报错在启动参数中加入密码:3. 主启动类package com.work; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.context.config.annotation.RefreshScope; /** * version 1.0 * Description: 网关启动类 * Author 天狼 * date 2026-07-17 14:32 */ SpringBootApplication EnableDiscoveryClient RefreshScope public class GatewayApplication { private static Log log LogFactory.getLog(GatewayApplication.class); public static void main(String[] args) { SpringApplication.run(GatewayApplication.class,args); log.info(网关启动成功); } }到此填坑完成,尽情玩刷吧对你如果有帮助请给我个赞!

相关新闻

Beyond Compare 5密钥生成技术深度拆解:从逆向工程到RSA算法实现

Beyond Compare 5密钥生成技术深度拆解:从逆向工程到RSA算法实现

2026/7/24 23:02:19

Beyond Compare 5密钥生成技术深度拆解:从逆向工程到RSA算法实现 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件对比工具,其授权验证…

小爱音箱音乐播放神器:XiaoMusic 完全指南,解锁无限音乐自由

小爱音箱音乐播放神器:XiaoMusic 完全指南,解锁无限音乐自由

2026/7/24 23:02:19

小爱音箱音乐播放神器:XiaoMusic 完全指南,解锁无限音乐自由 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 还在为小爱音箱的音乐版权限制而…

5分钟零成本搭建:如何用AI股票分析工具让投资决策更简单?

5分钟零成本搭建:如何用AI股票分析工具让投资决策更简单?

2026/7/24 22:52:19

5分钟零成本搭建:如何用AI股票分析工具让投资决策更简单? 还在为复杂的股市数据头痛吗?每天面对海量的K线图、财务指标和新闻资讯,普通投资者往往感到无从下手。daily_stock_analysis正是为解决这一痛点而生——这是一款完全免费…

C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

2026/7/25 0:02:22

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

2026/7/25 0:02:22

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

2026/7/25 0:02:22

更多请点击: https://kaifayun.com 第一章:AI 游戏平衡性分析 现代游戏开发中,AI 不再仅用于控制 NPC 行为,更被深度整合进游戏平衡性调优流程。通过强化学习与对抗性仿真,AI 可以在数百万局对局中自动识别数值失衡点…

挑战一天速通Java高并发!

挑战一天速通Java高并发!

2026/7/25 0:02:22

有出去面试的朋友肯定深有感受,像我们刚入行那会面试的加分项现在卷得已经成为了面试的基础题(手动狗头)。其中最典型的就属这个Java并发编程了。之前一般只有大厂才会有高并发编程相关的面试内容,但现在只要你入了Java行业就会涉…

挑战一天速通Spring全家桶!

挑战一天速通Spring全家桶!

2026/7/25 0:02:22

不知道各位Java好大哥们闲的时候会不会去关注Spring目前的官网,你会发现他的slogan是: Spring makes Java Simple。它让Java的开发变得更加简单。某种意义上来说:是Spring成就了Java!但随之而来的就是:由他之后诞生出来的各种组件…

临沂GEO技术解析与行业应用方案

临沂GEO技术解析与行业应用方案

2026/7/24 23:52:21

随着生成式AI搜索在B端采购、本地生活服务等场景的渗透率快速提升,传统依赖百度竞价、抖音投流的获客模式正在发生根本性转变。据QuestMobile发布的《2024年企业数字化营销趋势报告》,超过60%的鲁南地区中小企业在采购决策前,会通过豆包、文心…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/24 4:17:29

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/24 19:29:25

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

挑战一天速通Spring全家桶!

挑战一天速通Spring全家桶!

2026/7/25 0:02:22

不知道各位Java好大哥们闲的时候会不会去关注Spring目前的官网,你会发现他的slogan是: Spring makes Java Simple。它让Java的开发变得更加简单。某种意义上来说:是Spring成就了Java!但随之而来的就是:由他之后诞生出来的各种组件…

挑战一天速通Java高并发!

挑战一天速通Java高并发!

2026/7/25 0:02:22

有出去面试的朋友肯定深有感受,像我们刚入行那会面试的加分项现在卷得已经成为了面试的基础题(手动狗头)。其中最典型的就属这个Java并发编程了。之前一般只有大厂才会有高并发编程相关的面试内容,但现在只要你入了Java行业就会涉…

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

2026/7/25 0:02:22

更多请点击: https://kaifayun.com 第一章:AI 游戏平衡性分析 现代游戏开发中,AI 不再仅用于控制 NPC 行为,更被深度整合进游戏平衡性调优流程。通过强化学习与对抗性仿真,AI 可以在数百万局对局中自动识别数值失衡点…