最近用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