如果属性被static修饰时候,用spring的注解@Autowired会报空指针异常。
原因:
静态变量、类变量不是对象的属性,而是一个类的属性,所以静态方法是属于类(class)的,普通方法才是属于实体对象(也就是New出来的对象)的,spring注入是在容器中实例化对象,所以不能使用静态方法。
解决方法:
在set方法上面使用@Autowired,写法如下,类上面需要加@Component注解。
@Component public class QiniuUtils { private static UdeitorProperties properties; @Autowired public void setProperties(UdeitorProperties udeitorProperties){ QiniuUtils.properties = udeitorProperties; } }