给大家分享一个我最近遇到的一个坑
@ConfigurationProperties和@Value取到null,一开始以为是注入失败了,一顿操作后开始下载Spring源码开始跟着源码走一遍
原因不多说,直接说解决办法:
看网上说,如果使用的是@ConfigurationProperties(prefix = "xxx")注解进行自动装配,变量不能用static 进行修饰,给出的解释是 static 会在been注入之前把对象放在静态区
但是我测试的是变量可以使用静态修饰变量,但是该变量的get方法得使用static静态修饰,set方法是不可以使用静态修饰
原因可能是他在注入值的时候,可能是调用的set方法,在进行配置文件和实体类进行 变量 比对的时候,是用的set方法,把setName() 后边的Name拿出来,首字母小写变为name来进行和配置文件做比对,当然这只是我的猜想,你们感兴趣可以自己去翻代码
@Component
@ConfigurationProperties(prefix = "xxx")
public class VaccineConfig
{
/** 名称 */
private static String name;
/** 版本 */
private static String version;
/** Get方法 */
public static String getName() { return name; }
/** Set方法 */
public void setName(Str