java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringCloud无法获取Nacos中的配置文件信息

SpringCloud无法获取Nacos中的配置文件信息解决方案

作者:会脸红的情先生

文章介绍了在项目启动时解决@Value占位符值找不到问题的步骤,包括检查版本号、添加依赖、检查配置文件优先级以及正确配置dataID

在项目启动时始终报错@Value(${})值找不到

无法解析占位符中的值

1.着重检查nacos、springcloud、springcloudalibaba等相关版本号是否对应的上。

2.检查项目中的依赖是否添加:

        <!-- nacos config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

3.检查项目中配置文件优先级。又很对人在之前cloud版本中都是用的application.yml,这里我们需要使用bootstrap.yml,它的优先级大于application.yml。

spring:
  application:
    name: nacos-config-demo # 应用名称也是构成 Nacos 配置管理 dataId 字段的一部分 (当 config.prefix 为空时)
  cloud:
    # Nacos客户端
    nacos:
      discovery:
        # Nacos
        server-addr: 127.0.0.1:8848
        namespace: #命名空间为nacos配置的,自动生成或手动配置的
        group: DEFAULT_GROUP
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        namespace:  #命名空间为nacos配置的,自动生成或手动配置的
        group: DEFAULT_GROUP
        prefix: nacos-config-demo

dataID完整格式如下

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。

注意:

当 spring.profiles.active 为空时,对应的连接符 -也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension} file-exetension

为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持properties 和 yaml 类型。

${prefix}取值默认为项目名

也可以自由配置,声明我们需要的配置文件

${spring.profiles.active} 为项目指定的环境,例如dev。项目中不配置则为空,也不拼接 - 

${file-extension}为指定的文件类型

例如我的项目没有指定spring.profiles.active,则最终拼接的文件名称为: 

nacos-config-demo.yaml 

如果我指定了spring.profiles.active=dev则最终拼接文件名为: 

nacos-config-demo-dev.yaml

4.如果以上都没解决问题,再次检查pom文件依赖是否引入spring-cloud-starter-bootstrap包。

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.0</version>
        </dependency>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文