SpringBoot中@Value读取不到值的解决方案
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!
该问题的出现方式很多,我碰到该问题的场景是使用RMQ,在使用RMQ是,创建了一个生产者,配置了很多方案都没有办法读取到值
使用技术
SpringBoot + RMQ
出问题的地方
创建了一个生产者,生产者的地址和topic都配置到了properties中,以键值对的形式存在。
关键代码
public class producer{@Value(${"toppic"})
private String topic;@Value(${"address"})
private String address;private void send(){}
……
}// 调用代码
Producer p = new Producer();
p.send()
尝试的方式:
- 1、第一种方式:对topic加上static
- 2、第二种方式:将topic加上get/set
- 3、第三种方式:加上@Compement
但是都没用
解决方案:调用代码删除掉new 对象操作,使用@autowrite注入,然后用注入对象直接调用send().
出现这个问题的原因
该生产者对象,在SpringBoot启动到时候已经被加载了,@Value在启动的时候已经读取到了值,加载出来的对象和值都存放在了SpringBoot容器当中,当我们使用new 操作的时候,就重置了一个对象,并没有使用容器当中的对象,自然没有办法直接读取配置文件,所以使用send()的时候,直接在使用空值,所以一直读取不到。
总结
注意调用方式、观察@Value是否有被初始化、了解bean的加载和配置的加载流程
SpringBoot中@Value读取不到值的解决方案相关推荐
- linux中popen汉字乱码,Python中使用subprocess.Popen返回值乱码解决方案
Python中使用subprocess.Popen返回值乱码解决方案 问题描述 在python 2.7中,使用subprocess.Popen()调用*nix命令,并通过管道,获取其输出,并将其返回值 ...
- 【问题解决】Springboot中@Value()读取不到配置文件属性解决方法
在项目中遇到一个问题就是类中的定义好的@Value始终读取不到配置文件的定义的值,检查了多次后发现自己配置也没问题,却很玄乎仍然读取不到,大概是这样的: properties文件 daas_clien ...
- Springcloud config client中@Value读取不到值的问题
Springcloud config client中读取不到configserver的值/@Value失效(基于Springboot2.4.1+Springcloud2020.0) 检查了bootst ...
- Python中,读取excel公式值,结果为None的解决办法
openpyxl库可以非常方便的处理xlsx文件,但是这个库修改过xlsx文件之后,如果再次用openpyxl打开该文件,会发现无法获取到公式的计算结果,即可以获取到公式,但是无法获取公式结果,返回一 ...
- springboot中得注解_Spring以及SpringBoot中的常用的注解小结
一.注解的基本概念 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法.Annotion(注解)是一个接口,程序可以通过反射来获 ...
- springboot中使用@Value读取配置文件
转自:https://www.cnblogs.com/duanxz/p/4520627.html springboot中使用@Value读取配置文件 一.配置文件配置 直接配置 在src/main/r ...
- SpringBoot中通过@Value获取自定义配置的值
场景 在SpringBoot项目中的application.properties中定义变量,要在 controller中获取自定义配置的值. 实现 打开 application.properties ...
- java参数值注入_在springboot中使用注解将值注入参数的操作
后端的许多管理系统需要登陆者的信息,如shiro登陆后,会将登陆者的信息存储在shiro的session,在使用时需要多行代码获取用户信息.可以把获取在shiro中的登陆者信息封装在一个类中,使用时获 ...
- python怎么隔一个读取一个_Python实现中一次读取多个值的方法
Python 2里面读取输入的函数是raw_input(), Python 3的是input(),读入一个值后回车读取输入就退出了,想要一次读取多个输入,可以像下面这样: a, b = raw_inp ...
最新文章
- Windows 10四大版本官方对比:国人肯定专业版
- arcgis 10.0中的server报错说工作站服务没有打开
- 欧几里得算法(即辗转相除法)的时间复杂度
- Python列出文件夹下某类文件名的方法
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇
- CVPR2019 oral 目标跟踪算法之SiamRPN++
- Spring : ImportBeanDefinitionRegistrar动态注入
- linux初次入门学习小结
- php表单验证代码实例,PHP表单验证实例代码-三体教程在线编辑器
- VIM之taglist
- 未公开接口主要指以下哪几类_办公家具配套主要有哪些家具-GAVEE家维依为您解答...
- 浅谈“异常信息泄露(应用程序错误)”
- php追加append,PHP ArrayObject append()用法及代码示例
- 面向对象系列(三)-抽象类的特点
- DPU — 完全可编程网络
- 信奥一本通2071题
- google earth的网页版
- 我听说网络工程师已成为IT人的最底层了?
- JSJ—案例谈面向对象
- sql-年度销售总额,拓展出对照表,排序表 ,日期排序表,日历表