springboot3.x集成nacos 并实现多环境配置

一文搞懂springboot整合nacos与多环境构建 本文记录 spring cloud nacos 从整合到多环境得切换及构建。 阅读详情
AI摘要

本文介绍如何在SpringBoot3.x环境中集成Nacos,并实现多环境配置。包括不同版本Nacos的安装部署、依赖添加及配置文件设置等内容。

一、springboot版本

springboot3.0.x 和springboot3.1.x 可直接使用nacos-config-spring-boot-starter 包。

springboot >=3.2.x 需要使用spring-cloud-starter-alibaba-nacos-config包,因为常规包在我发布该文时nacos官方还没更新,已更新的版本只支持到3.1.x,cloud的包2024年4月份进行了更新,可以支持3.2.x及以上版本。

二、nacos安装部署

nacos1.x安装、操作请查看官方文档Nacos 快速开始 | Nacos

使用nacos1.x版本的用户请忽略【安装部署】后面的内容,直接跳到 二、springboot3.x集成nacos部分。

springboot3.x集成Nacos2.x升级和安装、操作请查看官方文档Nacos 2.0 升级文档 | Nacos,权限配置请参照Authorization | Nacos

nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

端口与主端口的偏移量描述
98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
98491001服务端gRPC请求服务端端口,用于服务间同步等
7848-1000Jraft请求服务端端口,用于处理服务端间的Raft相关请求

如果存在防火墙或者nginx端口转发问题,需要进行相应的端口暴露配置。如在nginx中,在已经暴露8848(x)的基础上,需要额外暴露9848(x+1000)。9849和7848端口为服务端之间的通信端口,请勿暴露到外部网络环境和客户端测。

三、springboot3.x集成nacos

1、添加依赖

nacos1.x版本用户,请添加如下依赖

        <!--nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.2.3</version>
        </dependency>

注意,springboot3.x集成该版本启动项目时能从nacos加载配置文件信息,但是通过@NacosValue注解取不到值, 需要把@NacosValue的地方替换为@Value注解,但是这样的话就不能动态刷新配置了,只能重启项目生效,只能是权益之计,想要彻底兼容的话就看nacos官方出不出兼容的nacos1.x版本的包了,不然只能升级到nacos2.x版本。

nacos2.x版本用户,如果你的springboot版本是3.0.x或者3.1.x版本,请添加下面的依赖

        <!--nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>0.3.0-RC</version>
        </dependency>

nacos2.x版本用户,如果你的springboot版本是3.2.x及以上,请添加cloud的包

        <!--nacos配置中心-->
       <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2023.0.1.2</version>
       </dependency>

2、配置文件中添加nacos配置,以常规包为例,如果是cloud的包,同理参考后面cloud的配置即可。

(1)单个环境配置
nacos:
  config:
    #是否开启Nacos配置预加载
    bootstrap:
      enable: true
    data-id: demo-boot-v3
    type: yaml
    group: DEFAULT_GROUP
    auto-refresh: true
    server-addr: 127.0.0.1:8848
    namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
    bootstrap:
      log:
        enable: true
    #如果开启认证的话需要用户名和密码,未开启的话请注释
    username: nacos
    password: nacos
(2)多环境配置,以开发环境dev和生产环境pro为例
spring:
  profiles:
    #指定要加载的配置
    active: dev

nacos:
  config:
    #是否开启Nacos配置预加载
    bootstrap:
      enable: true
    data-id: demo-boot-v3
    type: yaml
    group: DEFAULT_GROUP
    auto-refresh: true

---
#开发环境dev
spring:
  config:
    activate:
      on-profile: dev
nacos:
  config:
    #nacos的地址,替换成测试环境的实际地址即可
    server-addr: 127.0.0.1:8848
    #命名空间,替换为测试环境的实际命名空间即可
    namespace: 0f72f102-23c1-4176-869f-91f31c42a07e    
    bootstrap:
      log:
        enable: true
    #如果开启认证的话需要用户名和密码
    username: nacos
    password: nacos

---
#生产环境pro
spring:
  config:
    activate:
      on-profile: pro
nacos:
  config:
    #nacos的地址,替换成线上的实际地址即可
    server-addr: 127.0.0.1:8848
    #命名空间,替换为线上的实际命名空间即可
    namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
    bootstrap:
      log:
        enable: true
    #如果开启认证的话需要用户名和密码
    username: nacos
    password: nacos

(3)spring cloud nacos配置参考

spring:
  profiles:
    active: local
  config:
    import:
      #使用nacos配置 demo-boot-v3对应上面的data-id
      nacos:demo-boot-v3
  cloud:
    nacos:
      config:
        file-extension: yaml
        group: DEFAULT_GROUP
        refresh-enabled: true

---
# local
spring:
  config:
    activate:
      on-profile: local
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
        #如果开启认证的话需要用户名和密码,未开启的话请注释
        username: nacos
        password: nacos

---
# dev
spring:
  config:
    activate:
      on-profile: dev
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
        #如果开启认证的话需要用户名和密码,未开启的话请注释
        username: nacos
        password: nacos

---
# pro
spring:
  config:
    activate:
      on-profile: pro
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
        #如果开启认证的话需要用户名和密码,未开启的话请注释
        username: nacos
        password: nacos

注意这里nacos:demo-boot-v3是一个整体值,中间的冒号后面没有空格,他们的 key是:spring.config.import,demo-boot-v3换成你的data-id即可。

3、启动项目

Spring Cloud Alibaba基础教程:Nacos配置的多环境管理 经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 阅读详情

相关推荐

Spring Boot多环境配置全解:从Profile机制到Nacos实践

在应用开发中,配置管理是贯穿开发、测试与上线全流程的基础能力。不同环境往往对应不同的数据库、中间件和第三方服务地址,配置一旦错乱,轻则功能异常,重则引发测试环境误连生产库等严重事故。Spring Boot通过Profile机制将多环境配置纳入运行时管理,支持命令行、环境变量、配置文件等多种激活方式,配合2.4+的Profile Group与文档块语法,可灵活组织配置片段,实现一套代码多环境自动切换。面对更复杂的服务治理场景,还可引入Nacos配置中心按命名空间隔离环境配置,并借助Jasypt或环境变量保护敏

weixin_33491377的博客 256

【Spring实战】33 Spring Boot3 集成 Nacos 配置中心

在 Spring 框架中,配置中心是指一种集中式管理应用程序配置信息的机制。它的目标是通过集中存储和管理配置,实现配置的动态更新、版本管理和统一管理,以提高系统的灵活性、可维护性和可扩展性。本文我们成功的将 Spring Boot 项目集成了 Nacos 配置中心,实现了动态配置管理。Nacos的优秀特性使得配置的管理变得更加灵活和便捷,适用于各种规模的微服务项目。希望这篇文章能够帮助你顺利地将 Nacos 配置中心引入到你的 Spring Boot 项目中。

好久不见的流星 6392

SpringBoot集成Nacos配置中心实战指南

微服务架构中,配置中心是实现动态配置管理的核心技术组件。Nacos作为阿里巴巴开源的配置中心解决方案,通过集中化管理、实时推送和版本控制等机制,显著提升了配置管理的效率和可靠性。其核心原理基于长轮询机制实现配置变更的实时通知,结合Spring Cloud的RefreshScope机制完成热更新。在电商秒杀、流量调控等需要快速调整系统参数的场景中,Nacos配置中心展现出极高的技术价值。本文以SpringBoot集成Nacos为例,详细解析多环境配置、动态刷新等核心功能,并给出618大促等典型场景下的性能优化

cuanji3287的博客 378

SpringBoot3.x整合Nacos和Redis

java17、springboot3.x、nacos、redis、LocalDateTime

习惯向左的博客 6358

SpringBoot 3.x 实战:两步极速集成Nacos配置中心,告别版本困扰

本文针对SpringBoot 3.x集成Nacos配置中心的常见版本兼容问题,提供了两步极速解决方案。首先,精准引入经过验证的`spring-cloud-starter-alibaba-nacos-config`依赖版本,避免依赖冲突;其次,详解bootstrap.yml配置编写与Nacos控制台操作,确保连接成功并实现配置动态刷新,帮助开发者快速告别版本困扰。

t1u2v的博客 448

SpringBoot集成Nacos配置中心:从基础配置到动态刷新实战

本文详细介绍了SpringBoot集成Nacos配置中心的完整流程,从基础环境配置到动态刷新机制实现。通过核心注解使用、多环境管理、安全配置等实战案例,帮助开发者快速掌握Nacos在微服务架构中的配置管理能力,提升应用的可维护性和灵活性。

weixin_30902251的博客 500

Nacos 你真的了解吗?Spring Boot 集成配置中心实战指南(小白也能看懂!)

功能Nacos 实现方式配置集中管理通过 Data ID + Group多环境隔离Namespace动态刷新+ 长轮询共享配置Nacos 不仅能做配置中心,还能做服务注册发现,是微服务架构的“瑞士军刀”。但用错一步,就可能“配置失联”、“刷新失效”。掌握以上要点,你已经比 80% 的开发者更懂 Nacos!视频看了几百小时还迷糊?关注我,几分钟让你秒懂!

qq_45202803的博客 923

SpringCloud Alibaba - Nacos 配置统一管理、热部署、多环境配置共享

经过前面的步骤,我们已经新建一个 nacos 的配置文件,项目一启动就会去加载这个配置文件然后合并到 application.yml 中,那么怎么才能先去加载这个 nacos 新建的配置文件呢?无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入这个文件。获取到 nacos 的地址,然后才找到并加载 nacos 配置文件~访问 nacos 主页,点击配置管理查看配置列表,然后新建配置如下。可以看到控制台打印相应日志内容。

CYK_byte的博客 5384

Spring Boot 集成 Nacos 完全指南:从配置中心到服务发现一站式实战

│ Nacos 核心定位 ││ N = Naming 服务注册与发现 ││ A = Configuration 配置管理 ││ C = Service 微服务治理 ││ O = O&M 运维监控 ││ S = System 系统支撑 ││ Spring Boot + Nacos 集成要点 ││ ✅ 依赖版本:Spring Cloud Alibaba 2023.0.x + Nacos 2.3.x ││ ✅ 配置文件:bootstrap.yml + application.yml │。

2609_95039210的博客 936

Nacos - Springboot ,nacos 与 springboot 进行集成

文章目录Nacos - Springboot ,nacos 与 springboot 进行集成1、增加pom 依赖项2、增加配置项3、在某个组件中使用nacos 配置的属性 Nacos - Springboot ,nacos 与 springboot 进行集成 1、增加pom 依赖项 nacos-config-spring-boot-starter 的版本0.2.1与 springboot的2....

简简单单Onlinezuozuo 5979

Linux安装Oracle sqlplus客户端工具

Linux安装Oracle sqlplus客户端工具

优快云_Nan_Jiang_Li的博客 2774

SpringBoot3.x集成nacos

SpringBoot3.x集成nacos1、环境依赖2、环境安装2.1、docker安装mysql8.0.322.2、docker安装nacos2.2.03、项目代码3.1、新建springboot项目3.1.1、修改pom.xml3.1.2、修改启动类3.1.3、修改配置文件3.1.4、nacos创建配置3.1.5、新增测试接口 文档内容: 使用Nacos进行配置管理 使用Nacos进行服务注册 1、环境依赖 JDK 17+ mysql 8.x Nacos 2.2.0+ SpringBoot

BadBoyxiaolin的博客 2896

【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)

此外,系统还会根据我的旅行计划和喜好,为我推荐合适的景点和门票,让我的旅行更加丰富多彩。旅游门票预订系统的出现,不仅简化了门票预订的流程,还提高了旅行的便捷性和效率。一款基于FastAdmin+ThinkPHP+Uniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。如今,有了旅游门票预订系统,这些问题都能迎刃而解。智能推荐:系统还会根据你的旅行计划和喜好,为你推荐合适的景点和门票,让你的旅行更加丰富多彩。

2401_84413757的博客 1301

Springboot集成Nacos配置

Nacos动态更新配置的原理是基于订阅、监听和推送机制,加上版本控制和一致性协议的支持,来保证配置信息在分布式环境下的动态更新和同步。

一份努力一份收获 2962

Silvaco Atlas(五)——物理模型总结

物理模型总结

qsz1425AWD2121的博客 2149

Blender入门教程-3D视图界面介绍

3D视图用于与3D场景交互,可用于各种目的,例如建模、动画、纹理绘制等。在关闭 启动画面 后,启动场景会显示在3D视口中(如果没有加载其他blend文件)。01 标题栏标题栏包含了基于当前 模式 的各种菜单和控制。

weixin_52345129的博客 2287

springboot配置-集成nacos

springboot配置-集成nacos 文章目录springboot配置-集成nacos1.安装信息2.配置发布与获取3.服务注册与消费服务 nacos仓库:https://github.com/alibaba/nacos nacos介绍文档:https://nacos.io/zh-cn/docs/architecture.html nacos使用例子:https://github.com/na...

2010yhh 9310

Darknet-Yolov3 移植过程

本教程面向使用寒武纪平台进行深度学习推理任务的开发者。针对当前主流检测网络darknet-yolov3,进行寒武纪平台的移植。开发者对照移植过程,能够利用寒武纪智能处理器设备完成多种场景的目标检测任务。本实验代码基于 Neuware 1.6.1 与 Python 2.7 环境。

shengyin714959的博客 438

SpringBoot 集成 Nacos,附带Nacos的安装

手把手带你 SpringBoot 集成 Nacos,附带Nacos的安装

weixin_58403235的博客 2230

【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径

Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 891

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2256

nacos集成springboot

使用nacos作为注册中心,一般都是spring cloud项目。因此我们需要确定项目所需依赖的版本。

qq1270821038的博客 3040

Python赋能,洞见先机:构建基于异步爬虫与流处理的实时舆情监控系统

我们将从核心概念入手,逐步搭建一个集。.option("es.resource", "public-opinion-%s" % time.strftime("%Y-%m-%d")) \ # 按日期分索引。| 数据采集层 |----->| 消息队列层 |----->| 流处理与分析层 |----->| 存储与可视化层 |:使用Spark Streaming的状态操作或Flink的CEP库,检测更复杂的模式,如“某关键词的负面舆情在1小时内激增500%”。

2201_76125261的博客 433

springboot集成 Nacos 获取nacos中的配置文件内容 实现配置管理

本文介绍了SpringBoot集成Nacos实现配置管理的详细方法。通过配置spring-cloud-starter-alibaba-nacos-config依赖,在application.properties中设置Nacos服务端地址、命名空间、Data ID等信息。演示了两种读取配置的方式:使用@Value注解(推荐)或旧版的@NacosValue注解,并验证了配置动态刷新功能。文中还提到SpringBoot 3.x与旧版Nacos注解的兼容性问题,建议使用Spring Cloud Alibaba的自动

u010804417的博客 383

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringCloudAlibaba快速入门(3)Nacos配置多环境管理

所谓多环境管理,就是为每个环境准备一套配置文件,在相应环境部署应用时,读取相应的配置文件即可,这些对于程序而言是透明的,从而达到一套代码,根据环境配置,获得不同实现。 本文将基于 profile 及 namespace 分别实现多环境配置管理,并在最后讲述多配置文件加载,实现配置文件动静分离。

死牛胖子的技术随笔 1042

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: springboot2.x升级到3.x实战经验总结
下一篇: springdoc-openapi-用户界面如何将请求设置为HTTPS
咚咚阳丶
博客等级 码龄15年 1968粉丝 91原创
评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值