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(公共配置组)
相关推荐
java水泥工15 分钟前
Java项目:基于SpringBoot和VUE的在线拍卖系统(源码+数据库+文档)
java·vue.js·spring boot
zooooooooy23 分钟前
Electron实现自定义全量更新
spring boot·electron
neoooo1 小时前
JDK 新特性全景指南:从古早版本到 JDK 17 的华丽变身
java·spring boot·后端
我是场2 小时前
Android14内核调试 - boot & vendor_boot
java·开发语言·spring boot
Q_Q5110082854 小时前
python的校园研招网系统
开发语言·spring boot·python·django·flask·node.js·php
笨蛋不要掉眼泪5 小时前
Spring Boot集成腾讯云人脸识别实现智能小区门禁系统
java·数据库·spring boot
JosieBook6 小时前
【SpringBoot】16 核心功能 - Web开发原理 - 请求参数 - 源码分析
前端·spring boot·后端
AAA修煤气灶刘哥7 小时前
微信小程序+Spring Boot:三步教你搞定微信小程序登录+Token加密+全局拦截器
spring boot·后端·微信小程序
你我约定有三13 小时前
MyBatis--缓存详解
spring boot·缓存·mybatis