springboot2整合nacos作为配置中心

依赖1

xml 复制代码
    <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 对应的Spring Cloud版本 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2020.0.6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 对应的Spring Cloud Alibaba版本 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.5.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

具体使用依赖

xml 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
         <!-- Spring Cloud 2020.0版本之后,bootstrap功能被移除了,需要单独引入依赖才能使用bootstrap.yml。 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

Nacos服务端版本

推荐使用Nacos 2.0.4或2.1.x版本

我这里使用的==NACOS2.1.1==

下载地址

创建bootstrap.yml

yml 复制代码
spring:
  application:
    name: aa-cc
  profiles:
    active: dev
  config:
    import:
    #在nacos创建文件的dataId   aa-cc-dev.yml
      - nacos:${spring.application.name}-${spring.profiles.active}.yml
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml
        group: DEFAULT_GROUP
#        namespace: # 可选,用于环境隔离,不填默认就是public
#  使用自定义namespace的时候需要注意,这个值应该是是命名空间ID,而不是空间名称
#[类似值:0ba3e23d-4c3e-4331-bae1-242777703550]

==如果需要导入多个配置文件==

yml 复制代码
spring:
  config:
    import:
      - nacos:aa-cc-server.yml?group=DEFAULT_GROUP&namespace=dev
      - nacos:database-config-dev.yml?group=DATABASE_GROUP&namespace=dev
      - nacos:common-config-dev.yml?group=COMMON_GROUP&namespace=dev
#这里的namespace填写的是空间名称

启动注意点:

如果遇到以下报错

bash 复制代码
Description:

No spring.config.import property has been defined

Action:

Add a spring.config.import=nacos: property to your configuration.
	If configuration is not required add spring.config.import=optional:nacos: instead.
	To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.


原因:在Spring Cloud 2020.0.x版本之后,Spring Cloud引入了新的配置加载机制,需要显式地通过spring.config.import属性来声明外部配置源。

临时禁用检查正常启动项目
如果暂时不想改配置,可以禁用这个检查:
spring:
  cloud:
    nacos:
      config:
        import-check:
          enabled: false

创建nacos配置文件,写入配置信息

启动项目

查看日志输入以下内容就读取成功了

补充知识点

==命名空间和分组的区别==

命名空间(Namespace)= 大楼 用于环境隔离,不同环境的配置完全分开,互不影响。

分组(Group)= 楼层/部门 用于业务分类,在同一环境下按业务模块划分。

实际使用建议 命名空间划分(按环境)

bash 复制代码
├── dev(开发环境)
├── test(测试环境)  
├── pre(预发布环境)
└── prod(生产环境)

分组划分(按业务)

bash 复制代码
├── DEFAULT_GROUP(默认组)
├── USER_GROUP(用户服务组)
├── ORDER_GROUP(订单服务组)
├── PAYMENT_GROUP(支付服务组)
└── COMMON_GROUP(公共配置组)
相关推荐
摇滚侠41 分钟前
《SpringBoot 3:入门与应用实战》第 8 章 AOP 的进阶机制和应用 阅读笔记 16
java·spring boot·笔记
QQ_21696290961 小时前
【源码编号:project86570】SpringBoot电影院在线选座售票系统:电影排片、在线选座、订单购票、后台管理完整实战
java·spring boot·后端
谢亮_vipxieliang1 小时前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
爱码猿2 小时前
SpringAop通过el表达式动态获取方法入参的值
spring boot·spring·aop
孫治AllenSun2 小时前
【LangChain4J-03】Springboot 项目搭建框架
java·spring boot·后端
骇客野人3 小时前
SpringBoot + RocketMQ 异步解耦与最终一致性解决方案
spring boot·rocketmq·java-rocketmq
南城以南溫暖如初1476 小时前
树洞交友系统架构设计与匿名聊天实战指南
java·spring boot·mysql·系统架构·vue·mybatis·交友
智码看视界7 小时前
Day60-Serverless:函数计算改写传统Spring Boot
spring boot·云原生·serverless·函数计算·冷启动
QQ_21696290967 小时前
【项目编号:project86564】SpringBoot供应链管理系统:采购、供应商、库存、销售、统计报表一体化实战
java·spring boot·后端
m0_587383007 小时前
课程培训系统开发实战:从技术选型到核心模块设计
java·spring boot·架构·系统架构