1. 程式人生 > >service手動例項化(new)導致類中的spring物件無法注入的問題解決

service手動例項化(new)導致類中的spring物件無法注入的問題解決

 

 


下面說的這個畫橫線的可能是錯誤的,因為我之前用controller繼承父類的註解物件的時候成功了,所以可能這次的唯一原因就是

不該把本該從ioc容器中拿出的物件通過new的方式例項化,至於繼承註解物件應該是可以的。

首先,如果打算用繼承,那麼父類被注入的物件是無法繼承的,手動注入即可,比如 @Autowired,

因為本質上是從spring ioc容器中拿物件,所以像這種想要繼承父類service中通過@Autowired注入的物件的目的是實現不了的,只能手動注入。

(比如這次我通過把父類service中的通過註解注入的物件加上 public,然後讓子service試圖繼承過來,實際上是不可行的,是注入不了的)

Service物件,必須通過spring注入的方式宣告,不能new一個出來,否則Service中的物件將無法被spring注入,比如mapper。

 

例如:

這裡的 addGroupService 之前是通過 new 出來的,結果導致裡 Service 裡面的mapper 為空,

所以只要用spring的方式注入這個service就行了,例如 @Autowired

這裡我把 AddGroupService addGroupService = new AddGroupService(); 註釋掉了,然後 @Autowired 一個 AddGroupService 物件,然後就成功注入了