问题描述
构造方法中使用@value注入配置属性的成员变量,获取的值为null
启动时控制台输出
原因猜想
java调用构造方法时属性未初始化
面向百度开发,找到了一句“程序会先执行构造函数,然后再为@Value修饰的成员变量注入配置值。因此,执行构造函数的时候,配置项的值一直为null”
解决方案
一、@PostConstruct注解
该注解在构造函数之后执行,那么就是说在该注解声明的方法中,所有属性都是初始化后的
重启项目:
注意:该注解修饰的方法,返回值没有限制,但是一般该注解只是用于初始化某些配置、属性,所以并不需要返回值
二、其他方法
https://blog.csdn.net/qiuqiu886/article/details/102586113
特别声明:@value注解,只能在被spring管理的类中生效。(类上加@component、@service、@configuration等)
萌新发言,不喜勿喷,欢迎各位大佬指出不当之处。