java @Value("${}")获取不到配置文件中值

时间:2025-02-13 07:09:45

1、配置

spring:
  mail:
    port: 25

2、获取不到配置信息

问题再现:


获取信息@Value("${}")

注解写在utils类中,当需要获取数据的时候,显示的却是:NULL

但是写在serviceImpl或者controller中,需要获取该数据的时候却可以获取到

3、原因分析

个人理解:配置在property()中的属性,最终都是属于bean级别的,而在serviceImple和controller中分别有@service和@controller注解,他俩同时也是bean级别的,所以可以获取到数据。而utils中没有加类似注解,不属于同一个级别,所以无法获取数据

 


4、项目问题再现

  • 方法设置为static--获取不到数据(将util中的方法设置为static是为了方便调动,不用再new utils)
  • @value()下面的接收变量为static--获取不到数据
  • 在调用utils的serviceImpl中直接()--获取不到数据(改为@Autowired Utils utisl,通过())
  • 配置在中的<num: 10>可以在@value()getNum;下面的接收变量getNum直接参与四则运算:getNum*8(结果是80)