錯誤場景:spring
springboot + mybatis sql
在工具類的靜態方法中,須要使用mapper(其餘bean也同樣),因此最開始直接使用@Autowired進行了注入,代碼以下:數據庫
@Autowired private static Mt4UsersMapper mt4UsersMapper; @Autowired private static UserBankAccountsMapper userBankAccountsMapper; @Autowired private static UserProfilesMapper userProfilesMapper;
接着在下面的靜態方法中直接進行了使用,查詢數據表(sql語句、數據庫數據都正常,理論上是能夠查出數據的),然而報了下面的空指針錯誤:springboot
看了相關資料瞭解到,這樣是沒法注入成功的,因此不管你怎麼查詢都是null,要想在非spring管理下的普通類中注入bean,不能直接用@Autowired進行注入,看了幾種辦法,這裏就只記錄一種我認爲最簡單的@PostConstruct的方式注入的吧 QAQ:mybatis
@Component public class CreateReportTemFileUtil2 { @Autowired private Mt4UsersMapper testmt4UsersMapper; private static Mt4UsersMapper mt4UsersMapper; @Autowired private UserBankAccountsMapper testuserBankAccountsMapper; private static UserBankAccountsMapper userBankAccountsMapper; @Autowired private UserProfilesMapper testuserProfilesMapper; private static UserProfilesMapper userProfilesMapper; @PostConstruct public void init(){ mt4UsersMapper = this.testmt4UsersMapper; userBankAccountsMapper = this.testuserBankAccountsMapper; userProfilesMapper = this.testuserProfilesMapper; } }
劃重點註解也很重要。app
這樣就注入成功啦!!後面代碼直接跑通了,再也不一直報空指針異常了,這個方法 不用再新建一個類什麼的,感受仍是方便。固然這也是有必定侷限性的,由於mapper那邊是加了@Repository的。工具