开发中遇到的奇怪的bug
把配置类中一个属性(checkTokenEndpointUrl)从配置文件中获取:
首先想到@Value({$xx.xx.xx})去拿,发现是null,于是去百度,答案说:@value不能直接注入值给静态属性,spring 不允许/不支持把值注入到静态变量中;spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量,我这里是去掉了static修饰符
去掉static修饰符后发现启动报错
原因分析:
报错信息是因为在创建类时创建了一个多参的构造函数,但是spring boot 自动注入的时候使用的是无参构造函数。
解决方案:
生成无参构造,我是直接加了一个@NoArgsConstructor注解