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(公共配置组)
相关推荐
贫民窟的勇敢爷们14 分钟前
Spring Boot+Vue电商系统开发实战:架构设计与核心实现
vue.js·spring boot·后端
星光开发者32 分钟前
基于springboot电动汽车租赁管理系统-计算机毕设 附源码 11217
javascript·spring boot·mysql·django·php·html5·express
苍煜33 分钟前
SpringBoot Spring事务完整版详解:@Transactional注解实操 + 七大事务传播机制用法
spring boot·spring·oracle
ffqws_1 小时前
Spring Boot 配置读取全解析:从 application.yml 到 Java 对象的完整链路
java·数据库·spring boot
RuoyiOffice1 小时前
SpringBoot+Vue3 实现 OA 公文外来文与归档台账:外部收文、BPM办理、三类公文统一归档
spring boot·微服务·uni-app·vue·ruoyi·anti-design-vue·ruoyioffice
callJJ12 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
海兰12 小时前
【第27篇】Micrometer + Zipkin
人工智能·spring boot·alibaba·spring ai
海兰13 小时前
【第28篇】可观测性实战:LangFuse 方案详解
人工智能·spring boot·alibaba·spring ai
RuoyiOffice14 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
spring boot·后端·vue·anti-design-vue·ruoyioffice·假期·人力
xmjd msup14 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring