使用@Value取不到值,为null
在使用@Value的时候,可以从properties文件中获取值,这样做可以解耦,但是今天在使用这个注解的时候即使赋值,却只能取到null
主要错误:
1.没有在类上使用@Component注解或其他衍生注解,使之成为容器,spring就获取不到properties的值。
2.在调用这个类的时候,没有使用@Autowired使其自动注入,而是使用了new的方式,这样也取不到值。
下面是正确方法:
- Util类
...
@Component //必须加
public class BmsUtil {@Value("${file.uploadFolder}")private String realBasePath;...
}
- Service类
...
@Service //必须加,@Service是@Component的衍生注解
public class BookServiceImpl implements BookService {@AutowiredBookMapper bookMapper;@Autowired //在调用类的时候,需要用@Autowired自动注入BmsUtil bmsUtil;...
}
- properties
spring.thymeleaf.cache=false
#设置sql语句输出在控制台
logging.level.com.muyu.bms.mapper=debug
#windows上传图片路径
file.uploadFolder=E:/code/IDEA code/BMS/src/main/resources/static/upload
#linux上传图片路径
#file.uploadFolder=/usr/local/tomcat/apache-tomcat/webapps/ROOT/WEB-INF/classes/static/upload
另有一种情况@Value也不能获取到值,是在构造函数中调用了@Value作用的变量,并为其赋值。
================================
时间久了再回头看这个问题,其实已经很好理解了,@Value是Spring,IOC注入参数的一种方式,所以必须加上@Component等衍生注解,将其交给Spring管理,@Autowired也是一样的道理,使用这个注解Spring才会把值注入进去。
而调用构造函数创建对象,@Value获取不到值的原因就是,你没有使用Spring的获取对象的方法,自己创建了一个对象,自然也就拿不到Spring注入的值。
使用@Value取不到值,为null相关推荐
- GEE中取数据遇到值为null无法添加到list的解决方法
1. 问题描述 在GEE上处理数据时,遇到了值为null的情况,这种情况下无法将得到null值添加到list,从而造成程序错误.因此,解决问题的思路应该是将null的值进行替换,替换为一个数值. 2. ...
- @Value取值为NULL的解决方案
@Value取值为NULL的解决方案 参考文章: (1)@Value取值为NULL的解决方案 (2)https://www.cnblogs.com/jpfss/p/11322774.html (3)h ...
- java map 允许null值,Map取值方法,其中取得多种值,避免null值转换
~~~ import java.math.BigDecimal; import java.util.Date; import java.util.Map; /** * * Map取值方法,其中取得多种 ...
- [java]Map取值方法,其中取得多种值,避免null值转换
import java.math.BigDecimal; import java.util.Date; import java.util.Map;/*** <p>* Map取值方法,其中取 ...
- @Value取值为NULL
@Value("${tag}") private String tagValue; 但是取值时,有时这个tagvalue为NULL,可能原因有: 1.使用static或final修 ...
- Hibernate里自定义UserType时取不到值的问题
前两天我微博提到有个BUG出现了两个月却还没有头绪.这个BUG是这样的:在Hibernate中自定义UserType,从数据库中取值的时候,有时候这个UserType能取到值,但有时候即使数据库有值, ...
- html input 传值 request接到值为null,解决jsp向servlet传值为null的问题
jsp关键代码: BookInfo bi = (BookInfo)request.getAttribute("bi") ; request.setAttribute("i ...
- 不再迷惑,无值和 NULL 值
在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开 ...
- 控制层@Value注解取不到值
@Value("${enable-upload-image}")private String enable; 如上所示,同样的代码,写在在业务层,运行时能取到正确的值,但在控制层却 ...
最新文章
- 搭建 数字证书_CA认证介绍及搭建过程
- IOS6学习笔记(四)
- CentOS 6.3系统安装配置KVM虚拟机
- arm 饱和指令_ARM aarch64汇编学习笔记(九):使用Neon指令(一)
- 关于TcpClient,Socket连接超时的几种处理方法
- Python操作PostgreSQL数据库的方法
- 【SVN】SVN创建分支
- w ndows模拟器,DS4Windows模拟器
- Netty高性能之道1-传统RPC调用性能差的三宗罪
- sqlserver只剩mdf数据文件如何附加
- 排查到解决问题的过程:浏览器突然无法访问网页,错误代码:0x80004005,最终定位:“电脑打开热点,电脑就不能上网了”
- 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
- k8s 1.17.3 二进制部署
- 炉石一直显示连接服务器,炉石传说无法连接战网服务器怎么办 处理方法详解...
- Windows 8系统中LOL登陆错误出现的服务器未响应怎么处理?
- Clickhouse—时间窗口函数
- CRN: 13506 Learning Management System: Blackboard
- 智能合约到底是什么?
- DB2、MySQL去重SQL
- CSS中white-space属性
热门文章
- error: src refspec master does not match any. 错误的解决办法
- web利用html2canvas实现截图上传图片
- 如何实现360度的手游安全防护?网易云易盾专家分享最新实践
- 4.flask第三方组件
- 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用
- CORS解决跨域的几种实现方式
- golang web 服务器 request 与 response 处理
- Altium Designer 18中的Violations Associated with Components
- 电脑装机硬盘分区格式
- C语言程序设计 设计用函数实现模块化程序设计