软件编程
位置:首页>> 软件编程>> java编程>> Nacos入门过程的坑--获取不到配置的值问题

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

作者:万物皆字节  发布时间:2023-07-24 11:39:41 

标签:Nacos,配置

Nacos获取不到配置的值

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

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

本地nacos

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里是可以读取到的。

来源:https://blog.csdn.net/Aqu415/article/details/107329783

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com