最近用spring boot ,在controller外面即自定义的类里报错java
java.lang.NullPointerExceptionspring
debug了下发现@Resource注入为null服务器
查了很多资料也没解决问题,最后终于找到一种解决办法,为了之后查找方便特地记录下来app
@Component public class SaveStructures { private static SaveStructures structures; @Resource private ApiFilesService filesService; @Resource private ApiAssetsMapper assetsMapper; public SaveStructures() { } //经过@PostConstruct实现初始化bean以前进行的操做 @PostConstruct public void init() { // 初使化时将已静态化的Service实例化 structures = this; } …… …… structures.assetsMapper.batchAddAssets(list); …… structures.filesService.findByCondition(condition); }
注:函数
注入类的调用方法this
structures.filesService.findByCondition(condition);spa
说明:debug
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,而且只会被服务器调用一次,相似于Serclet的inti()方法。code
被@PostConstruct修饰的方法会在构造函数以后,init()方法以前运行blog