Spring cloud踩坑记录

50 阅读1分钟

Spring cloud踩坑记录

1. 项目引入packaging类型为pom的依赖项

项目中引入依赖项时,若依赖项的pom中声明
<packaging>pom</packaging>

则引入时需声明

<type>pom</type>
<scope>import</scope>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>${spring.boot.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>${spring.cloud.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>${spring.cloud.alibaba.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2. 在Spring Cloud 2020.* 版本之后使用nacos作为配置中心

问题

如果使用如下配置方式

spring:
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml

将会出现如下报错:

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.

解决方式

在application.yml中,需要显式地添加spring.config.import属性来导入Nacos配置,格式如下:

# application.yml 示例
spring:
  config:
    import:
      - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置