有三种可能会导致读取不到结果
1. 版本不匹配
具体版本适配可通过nacos官网查看版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
这里贴一下我的依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.7</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.5</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba</artifactId>
<version>2021.0.5.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. nacos版本为2.X
在Nacos 2.0.0及更高版本中,配置项应该放在bootstrap.yml(
properties)
文件中。
因为springboot启动时,加载bootstrap优先级会非常高,在创建并配置当前springboot的Environment时就会读取到所配置的bootstrap,后续会将此environment传给nacos调用nacos Server。
3. 配置错误
nacos中DataId配置格式为
${prefix}-${spring.profiles.active}.${file-extension}
${prefix}:一般为应用名
${spring.profiles.active}:
例
spring: profiles: active: dev
如果没有配置该信息 则 -${spring.profiles.active}全部不需要 注意 - 要删除
${file-extension}:nacos创建时选择的配置格式
以下是我的配置 仅供参考 DataId为user.yaml
server:
port: 518
spring:
application:
name: user
cloud:
nacos:
config:
file-extension: yaml
group: DEFAULT_GROUP
namespace: luo
prefix: ${spring.application.name}
server-addr: 127.0.0.1:8848