天天看點

SpringBoot @Autowired 注解失效 問題 整理

今天遇到了SpringBoot裡面@Autowired注解失敗的的問題,在網上也搜了下,有兩種情況會出現這個問題,特此記錄下來,以後好記住這個教訓。

  • *第一種情況

    Spring沒掃描到包,SpringBoot項目的Bean裝配預設規則是根據Application類所在的包位置從上往下掃描!“Application類”是指SpringBoot項目入口類。這個類的位置很關鍵:如果Application類所在的包為:com.boot.app,則隻會掃描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,則不會被掃描!即, 把Application類放到dao、service所在包的上級,com.boot.Application知道這一點非常關鍵

  • *第二種情況

    如果類A中存在成員屬性b, b是通過@Autowired自動注入,而類A的執行個體是通過new的方式産生的,那麼自動注入會失效的,我就是這種情況,其實問題很簡單。以後記住這個教訓。

繼續閱讀