获取不到nacos配置中心的配置信息(已解决)

您所在的位置:网站首页 jar咋读 获取不到nacos配置中心的配置信息(已解决)

获取不到nacos配置中心的配置信息(已解决)

2023-08-24 19:48| 来源: 网络整理| 查看: 265

获取不到nacos配置中心的配置信息(已解决) 自述工具以及环境使用的框架版本出现的问题我写的代码夫级pom依赖子级pom依赖bootstrap.yaml的配置启动类代码前端控制器代码这是配置中心的配置信息 问题所在感谢问题关键解决方法 感悟笑话特别提示

自述

小小的码农想请教一下了解微服务的大佬们,能不能发现我现在的问题,想请教一下,我究竟是哪一步出现了问题。我也去nacos官网看了看,并没发相应的解决方法,害。困扰了我3天,大四的码农该何去何从

工具以及环境

mac环境 1.eclipse 2.maven 3.2.5 3.java 1.8.0

使用的框架版本

1.spring boot 2.2.7.RELEASE 2.spring-cloud-starter-alibaba-nacos-config 2.2.7.RELEASE 3.nacos 1.2.1

出现的问题

我通过两种方式想获取配置中心指定dataid中的配置信息,发现并没有获取出来。

方式一

通过写了前端控制器,利用@value标签获取,发现获取到的为null值

在这里插入图片描述

方式二

我在启动类里通过ConfigurableApplicationContextgetEnvironment().getProperty(“user.name”)获取配置信息,发现获取到的居然是本地电脑的用户名,并不是配置中心的信息

在这里插入图片描述

我写的代码 夫级pom依赖 4.0.0 com.ziqiu springcloud-nacos-service 1.0 springcloud-nacos-service nacos服务工程 springcloud-nacos-a-config pom UTF-8 UTF-8 1.8 Cairo-SR3 Finchley.RELEASE com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.7.RELEASE org.springframework.boot spring-boot-starter-web 2.2.7.RELEASE 子级pom依赖 4.0.0 com.siyiface.hello springcloud-nacos-config 0.0.1-SNAPSHOT springcloud-nacos-config nacos-provider com.ziqiu springcloud-nacos-service 1.0 1.8 UTF-8 UTF-8 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config org.springframework.boot spring-boot-starter-web bootstrap.yaml的配置

1.因为我使用的是yaml格式,我也在配置文件中声明了

server: port: 8080 spring: application: name: nacos-config cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml 启动类代码 package com.siyiface.ceshi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class SpringcloudNacosConfigApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringcloudNacosConfigApplication.class, args); String userName = applicationContext.getEnvironment().getProperty("user.name"); String userAge = applicationContext.getEnvironment().getProperty("useLocalCache"); System.err.println("user name :"+userName+"; age: "+userAge); } } 前端控制器代码 package com.siyiface.ceshi; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.alibaba.nacos.api.config.annotation.NacosValue; @RestController @RequestMapping("/config") @RefreshScope public class controler { @Value("${server.port}") private String port; @Value("${user.name:}") private String name; @NacosValue(value="${useLocalCache:}",autoRefreshed=true) private String useLocalCachename; @RequestMapping("/get") public String get() { return port +" "+ name +" "+ useLocalCachename; // return useLocalCache; } } 这是配置中心的配置信息

在这里插入图片描述

问题所在 感谢

首先感谢在提问区遇到一位大哥,连续两天帮助我解决问题,不求回报的精神,手把手的讲解使我受益两朵。在解决问题的当天,我决定把遇到的问题分享给大家。希望大家不要遇到和我一样的坑,绕过这个坑。

问题关键

还记得前面我写的pom依赖吗,我之前用的nacos版本是1.2-1和spring boot版本是2-2.7

com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.7.RELEASE org.springframework.boot spring-boot-starter-web 2.2.7.RELEASE

老大哥和我说我的版本不对称,导致了spring获取不到nacos配置服务的信息。我还特地的去看了一下nacos的配置文件,发现正如老大哥所说,显示的请求返回为null。

解决方法

我使用了nacos 1.4.2版本的,和配置依赖版本为2.2.0.RELEASE和如下的spring boot版本,成功解决问题。

com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.0.RELEASE org.springframework.boot spring-boot-starter-web 2.0.7.RELEASE 感悟

首先,遇到问题,一定要学会看日志。从日志中寻找问题,并多去github对应的社区逛逛,看看有没有人遇到相同的问题,其次在弄java项目要时刻注意版本问题(特别是官网特意强调的)

笑话

偷偷告诉你们…大哥从github上拿下来的代码改下ip就能用,然而我死活都报错!!!!。

特别提示

nacos 2.X.X版本一定要注意!!!!!!!!本地的数据库要开启,还有nacos配置文件中的数据库账号密码一定要正确!!!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3