在使用@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相关推荐

  1. GEE中取数据遇到值为null无法添加到list的解决方法

    1. 问题描述 在GEE上处理数据时,遇到了值为null的情况,这种情况下无法将得到null值添加到list,从而造成程序错误.因此,解决问题的思路应该是将null的值进行替换,替换为一个数值. 2. ...

  2. @Value取值为NULL的解决方案

    @Value取值为NULL的解决方案 参考文章: (1)@Value取值为NULL的解决方案 (2)https://www.cnblogs.com/jpfss/p/11322774.html (3)h ...

  3. java map 允许null值,Map取值方法,其中取得多种值,避免null值转换

    ~~~ import java.math.BigDecimal; import java.util.Date; import java.util.Map; /** * * Map取值方法,其中取得多种 ...

  4. [java]Map取值方法,其中取得多种值,避免null值转换

    import java.math.BigDecimal; import java.util.Date; import java.util.Map;/*** <p>* Map取值方法,其中取 ...

  5. @Value取值为NULL

    @Value("${tag}") private String tagValue; 但是取值时,有时这个tagvalue为NULL,可能原因有: 1.使用static或final修 ...

  6. Hibernate里自定义UserType时取不到值的问题

    前两天我微博提到有个BUG出现了两个月却还没有头绪.这个BUG是这样的:在Hibernate中自定义UserType,从数据库中取值的时候,有时候这个UserType能取到值,但有时候即使数据库有值, ...

  7. html input 传值 request接到值为null,解决jsp向servlet传值为null的问题

    jsp关键代码: BookInfo bi = (BookInfo)request.getAttribute("bi") ; request.setAttribute("i ...

  8. 不再迷惑,无值和 NULL 值

    在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,心有戚戚焉,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开 ...

  9. 控制层@Value注解取不到值

    @Value("${enable-upload-image}")private String enable; 如上所示,同样的代码,写在在业务层,运行时能取到正确的值,但在控制层却 ...

最新文章

  1. 搭建 数字证书_CA认证介绍及搭建过程
  2. IOS6学习笔记(四)
  3. CentOS 6.3系统安装配置KVM虚拟机
  4. arm 饱和指令_ARM aarch64汇编学习笔记(九):使用Neon指令(一)
  5. 关于TcpClient,Socket连接超时的几种处理方法
  6. Python操作PostgreSQL数据库的方法
  7. 【SVN】SVN创建分支
  8. w ndows模拟器,DS4Windows模拟器
  9. Netty高性能之道1-传统RPC调用性能差的三宗罪
  10. sqlserver只剩mdf数据文件如何附加
  11. 排查到解决问题的过程:浏览器突然无法访问网页,错误代码:0x80004005,最终定位:“电脑打开热点,电脑就不能上网了”
  12. 基于C语言设计的俄罗斯方块小游戏(VS2017运行)
  13. k8s 1.17.3 二进制部署
  14. 炉石一直显示连接服务器,炉石传说无法连接战网服务器怎么办 处理方法详解...
  15. Windows 8系统中LOL登陆错误出现的服务器未响应怎么处理?
  16. Clickhouse—时间窗口函数
  17. CRN: 13506 Learning Management System: Blackboard
  18. 智能合约到底是什么?
  19. DB2、MySQL去重SQL
  20. CSS中white-space属性

热门文章

  1. error: src refspec master does not match any. 错误的解决办法
  2. web利用html2canvas实现截图上传图片
  3. 如何实现360度的手游安全防护?网易云易盾专家分享最新实践
  4. 4.flask第三方组件
  5. 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用
  6. CORS解决跨域的几种实现方式
  7. golang web 服务器 request 与 response 处理
  8. Altium Designer 18中的Violations Associated with Components
  9. 电脑装机硬盘分区格式
  10. C语言程序设计 设计用函数实现模块化程序设计