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

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

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

获取不到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配置文件中的数据库账号密码一定要正确!!!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5672854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存