Nacos入门过程的坑--获取不到配置的值问题

目录
  • Nacos获取不到配置的值
    • 本地nacos
    • JAVA代码
  • Nacos配置文件,通过@Value() 获取时失败了
    • 在nacos中配置的是这样的
    • 但是在Controller中取值取不到
    • 是我的命名不规范吗?我改下吧

Nacos获取不到配置的值

namespace设计真实一个奇特的东西。用spring-cloud-starter-alibaba-nacos-config测试的时候,JAVA代码里设置namespace必须使用那一串类似UUID的值,直接写英文名称一直获取不到值(public namespace除外),这个问题折腾了我好几天;网上的资料要么是写的不全,要么是胡编乱造;

真不知道这种设计意欲何为

本地nacos

JAVA代码

启动类:

@SpringBootApplication
public class NacosMain {
    public static void main(String[] args) {
        SpringApplication.run(NacosMain.class ,args);
    }
}
 

Controller类

@RestController
@RefreshScope
public class NacosController { 

    @Value("${uu:}")
    private String name;

    @GetMapping("/hello")
    public String info(){
        // System.out.println(name);
        return name;
    }
}
 

application.yaml

server:
  port: 10086
  servlet:
    context-path: /nacosdemo
 

bootstrap.yaml

spring:
  application:
    name: demo
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: 0519e084-652c-4b86-a43c-d2de2041ff28
        group: DEFAULT_GROUP
        file-extension: yaml
 

pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>code-demoparent</artifactId>
        <groupId>com.uu</groupId>
        <version>1.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>nacosdemo</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.1.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
 

父pom

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.uu</groupId>
    <artifactId>code-demoparent</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>
    <modules>
        <module>nacosdemo</module>
        <module>loader</module>
        <module>nacosclient</module>
        <!--<module>attachment</module>-->
    </modules>

    <name>code-demoparent</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies> 

    <dependencyManagement>
        <dependencies>

            <!--spring-boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.3.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            -->
        </dependencies>
    </dependencyManagement>
</project>

Nacos配置文件,通过@Value() 获取时失败了

在nacos中配置的是这样的

verify:
    qr_url: xxxxxxxx

但是在Controller中取值取不到

@Value("verify.qr_url")
privite String url;

震惊!取不到值!

为啥呢?难道是用的nacos的原因,百度一下,还是没办法解决,那我试试拿其他配置,结果,拿到了!

那就可以断定,不是nacos的原因,那是啥原因呢

是我的命名不规范吗?我改下吧

verify-url: xxxxxx

拿到了!

ok,解决了,就是我命名不规范,说不定人家naocs不认你这个,问我为啥这么确定是nacos不认,因为我直接写在本地application.yml里是可以读取到的。

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

(0)

相关推荐

  • Spring Cloud Alibaba Nacos 入门详解

    概览 阿里巴巴在2018年7月份发布Nacos, Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台.并表示在6-8个月完成到生产可用的0.8版本,目前版本是0.9版本. Nacos提供四大功能 服务发现和服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务.Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求. 动态配置管理 动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置.Nacos消除了在更新配置

  • SpringCloud2020整合Nacos-Bootstrap配置不生效的解决

    因为公司现在换成了nacos,所以自己写了demo学习一下.结果第一步就走不下去.在使用nacos-config读取nacos配置时.发现bootstrap.yml一直不生效. 按照网上的解决方法引入依赖. <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId> </dependency&g

  • springboot集成nacos的配置方法

    本文介绍了springboot集成nacos的配置方法,分享给大家,具体如下: nacos仓库:https://github.com/alibaba/nacos nacos介绍文档:https://nacos.io/zh-cn/docs/architecture.html nacos使用例子:https://github.com/nacos-group/nacos-examples springboot配置-集成nacos,例子代码下载 springboot-nacos-consumer spr

  • Nacos入门过程的坑--获取不到配置的值问题

    目录 Nacos获取不到配置的值 本地nacos JAVA代码 Nacos配置文件,通过@Value() 获取时失败了 在nacos中配置的是这样的 但是在Controller中取值取不到 是我的命名不规范吗?我改下吧 Nacos获取不到配置的值 namespace设计真实一个奇特的东西.用spring-cloud-starter-alibaba-nacos-config测试的时候,JAVA代码里设置namespace必须使用那一串类似UUID的值,直接写英文名称一直获取不到值(public n

  • Java十道入门易踩坑题分析后篇

    目录 一,写在前面 二,代码分析 代码分析① 代码分析② 代码分析③ 代码分析④ 代码分析⑤ 代码分析⑥ 代码分析⑦ 代码分析⑧ 代码分析⑨ 代码分析⑩ 一,写在前面 本篇主要讲类和对象这一章节的踩坑题,这一章也相对复杂和难理解,面试也是常考的一类题,我分析的都是比较经典的,读者觉得自己学习的不够扎实,可以收藏,如果觉得写发不错的话,求个免费的赞,谢谢! 二,代码分析 代码分析① 阅读如下代码. 请问,对语句行 test.hello(). 描述正确的有() package NowCoder; c

  • dubbo服务注册到nacos的过程剖析

    目录 前言 简述过程 源码剖析具体实现 服务注册 服务订阅 结语 前言 前面聊到到了我们的dubbo服务从redis迁移到nacos注册中心,迁移后发现,会时不时的抛一个异常 ERROR com.alibaba.nacos.client.naming - [CLIENT-BEAT] failed to send beat:, 所以有了这个剖析过程,当然最后查明异常是我们的SLB网络映射问题,和nacos没有关系. dubbo版本:2.7.4.1 nacos client版本:1.0.0 naco

  • SpringCloud 服务注册中的nacos实现过程

    如下图,org.springframework.cloud.spring-cloud-commons包下定义了一系列接口,其中就包括serviceregistry的系列规范,并通过SPI机制去调用接口实现. 在该包的META-INF/spring.factories文件中,可以找到EnableAutoConfiguration.class为key的value中有AutoServiceRegistrationAutoConfiguration.class这一项. 来看看这个AutoServiceR

  • Java反射通过Getter方法获取对象VO的属性值过程解析

    这篇文章主要介绍了Java反射通过Getter方法获取对象VO的属性值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个Excel导出的工具类,导出的批量数据是以List类型传入的,List里的对象自然每次都不同,这取决于需要导出什么信息.

  • Java十道入门易踩坑题分析前篇

    目录 1,java基本类型 2,java包装类 3,Java编译 4,JDK,JVM,JRE 5,类型转换 6,转义字符 7,标识符 8,类型转换 9,赋值符号 10,打印一个字符串 1,java基本类型 下面属于java基本数据类型的有( ) A.String B.byte C.char D.Array Java基本数据类型分为三种,数值型,字符型,布尔型 数值型: 整型:byte.short.int.long 浮点型:double.float 字符型:char 布尔型:boolean Arr

  • Golang Copier入门到入坑探究

    目录 正文 安装 快速入门 入坑 再探坑出坑 再盘一盘坑 结语 正文 github: https://github.com/jinzhu/copier 由于 golang 没有对复杂结构体的 clone 方法,所以,就需要有 copier 这样的工具库. 它看起来很简单,但实际使用中,有些“坑”还是要注意! 本文: 入门为辅,探“坑”为主, 看完再划走,CS我没有. 安装 go get github.com/jinzhu/copier 快速入门 好的,来一段代码快速了解 copier packa

  • PHP获取数组的键与值方法小结

    本文实例讲述了PHP获取数组的键与值方法.分享给大家供大家参考.具体如下: 使用数组的过程中经常要遍历数组.通常需要遍历数组并获得各个键或值(或者同时获得键和值),所以毫不奇怪,PHP为此提供了一些函数来满足需求.许多函数能完成两项任务,不仅能获取当前指针位置的键或值,还能将指针移向下一个适当的位置. 获取当前数组键 key() key()函数返回input_array中当前指针所在位置的键.其形式如下: mixed key(array array) 下面的例子通过迭代处理数组并移动指针来输出$

  • js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    本文实例讲述了js获取对象,数组所有属性键值(key)和对应值(value)的方法.分享给大家供大家参考,具体如下: <script> var values=function(object) { var values = []; for (var property in object) values.push(object[property]); return values; } //写成标准的方法(数组是object的一种): function getObjectKeys(object) {

  • js简单遍历获取对象中的属性值的方法示例

    本文实例讲述了js简单遍历获取对象中的属性值的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

随机推荐