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(公共配置组)
相关推荐
花花鱼1 小时前
spring boot项目使用tomcat发布,也可以使用Undertow(理论)
spring boot·后端·tomcat
这里是杨杨吖4 小时前
SpringBoot+Vue医院预约挂号系统 附带详细运行指导视频
vue.js·spring boot·医院·预约挂号
似水流年,是谁苍白了等待7 小时前
Spring Boot + MyBatis plus + MySQL 实现位置直线距离实时计算
spring boot·mysql·mybatis
老华带你飞8 小时前
学生信息管理系统|基于Springboot的学生信息管理系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·学生信息管理系统
FrankYoou9 小时前
Spring Boot 自动配置之 Spring transaction
java·spring boot·spring
卷Java9 小时前
饼状图修复总结
java·spring boot·uni-app·echarts
散一世繁华,颠半世琉璃11 小时前
Prometheus+Grafana轻松实现SpringBoot应用监控
spring boot·grafana·prometheus
Terio_my13 小时前
Spring Boot 热部署配置与禁用
java·spring boot·后端
z晨晨15 小时前
互联网大厂Java求职面试实战:Spring Boot与微服务场景深度解析
java·spring boot·redis·微服务·kafka·spring security·电商
码农飞哥15 小时前
AI编程开发系统001-基于SpringBoot+Vue的旅游民宿租赁系统
vue.js·spring boot·毕业设计·ai编程·计算机源码