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 小时前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解15 小时前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记19 小时前
Spring Boot Web MVC配置详解
spring boot·后端
初次攀爬者2 天前
Kafka 基础介绍
spring boot·kafka·消息队列
用户8307196840822 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解2 天前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端
初次攀爬者2 天前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺2 天前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart3 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
Nyarlathotep01133 天前
SpringBoot Starter的用法以及原理
java·spring boot