关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
生活随笔
收集整理的這篇文章主要介紹了
关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?錯誤場景:
springboot + mybatis?
在工具類的靜態方法中,需要使用mapper(其他bean也一樣),所以最開始直接使用@Autowired進行了注入,代碼如下:
@Autowiredprivate static Mt4UsersMapper mt4UsersMapper;@Autowiredprivate static UserBankAccountsMapper userBankAccountsMapper;@Autowiredprivate static UserProfilesMapper userProfilesMapper;接著在下面的靜態方法中直接進行了使用,查詢數據表(sql語句、數據庫數據都正常,理論上是可以查出數據的),然而報了下面的空指針錯誤:
看了相關資料了解到,這樣是無法注入成功的,所以無論你怎么查詢都是null,要想在非spring管理下的普通類中注入bean,不能直接用@Autowired進行注入,看了幾種辦法,這里就只記錄一種我認為最簡單的@PostConstruct的方式注入的吧 QAQ:
@Component public class CreateReportTemFileUtil2 {@Autowiredprivate Mt4UsersMapper testmt4UsersMapper;private static Mt4UsersMapper mt4UsersMapper;@Autowiredprivate UserBankAccountsMapper testuserBankAccountsMapper;private static UserBankAccountsMapper userBankAccountsMapper;@Autowiredprivate UserProfilesMapper testuserProfilesMapper;private static UserProfilesMapper userProfilesMapper;@PostConstructpublic void init(){mt4UsersMapper = this.testmt4UsersMapper;userBankAccountsMapper = this.testuserBankAccountsMapper;userProfilesMapper = this.testuserProfilesMapper;} }劃重點注解也很重要。
?
這樣就注入成功啦!!后面代碼直接跑通了,不再一直報空指針異常了,這個方法 不用再新建一個類什么的,感覺還是方便。當然這也是有一定局限性的,因為mapper那邊是加了@Repository的。
?
轉載于:https://www.cnblogs.com/xk920/p/10895025.html
總結
以上是生活随笔為你收集整理的关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 中的*args和**kwa
- 下一篇: MockServer jar包安装