在Spring boot+jpa项目中,遇到了一个类是普通的类,现在在类中想使用仓库来动态的存储读取的一些数据,如何使用 @Autowired注入这个仓库而不会抛出null指针异常呢,解决方法如下:
首先:使用@Autowired注入这个仓库。
@Autowired
private WaterRepository waterRepository;
其次,定义一个静态的类变量
public static ExcelTestReadData data;
然后使用如下方式初始化这个类变量:
@PostConstruct
public void init(){
data=this;
data.waterRepository=this.waterRepository;
}
这样就可以在非@Controller类中实现jpa仓库的注入,而不会抛出空指针异常。
注意:此方法类中必须有空的构造函数,否则仍然会抛出null指针异常。