Nacos入門過程的坑--獲取不到配置的值問題
Nacos獲取不到配置的值
namespace設(shè)計真實一個奇特的東西。用spring-cloud-starter-alibaba-nacos-config測試的時候,JAVA代碼里設(shè)置namespace必須使用那一串類似UUID的值,直接寫英文名稱一直獲取不到值(public namespace除外),這個問題折騰了我好幾天;網(wǎng)上的資料要么是寫的不全,要么是胡編亂造;
真不知道這種設(shè)計意欲何為
本地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: /nacosdemobootstrap.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: yamlpom
<?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的原因,百度一下,還是沒辦法解決,那我試試拿其他配置,結(jié)果,拿到了!
那就可以斷定,不是nacos的原因,那是啥原因呢
是我的命名不規(guī)范嗎?我改下吧
verify-url: xxxxxx
拿到了!
ok,解決了,就是我命名不規(guī)范,說不定人家naocs不認你這個,問我為啥這么確定是nacos不認,因為我直接寫在本地application.yml里是可以讀取到的。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring session 獲取當前賬戶登錄數(shù)的實例代碼
這篇文章主要介紹了Spring session 獲取當前賬戶登錄數(shù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
SpringBoot整合Shiro兩種方式(總結(jié))
這篇文章主要介紹了SpringBoot整合Shiro兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06

