代碼場景是這樣的:
抽象類定義抽象方法,不同的子類去override,
但是不同的子類會公用一些方法,所以會將這些公用的方法放在abstract類中
這些公用的方法 會用到其他呼叫其他服務類,所以需要將這些服務類注入到abstract中。
但是現在,無法注入這些服務類?
煩請知道的大神給個解決方案啊。
uj5u.com熱心網友回復:
為什么無法注入???肯定是代碼的問題。。。
uj5u.com熱心網友回復:
@Service("serviceName")@Autowired
@Qualifier("serviceName")
https://www.cnblogs.com/smileLuckBoy/p/5801678.html
uj5u.com熱心網友回復:
如果要給一個類注入其他bean的話,你首先要看看你自己這個類是否被注冊成bean了,如果沒有被spring管理,那spring就不知道要給誰注入uj5u.com熱心網友回復:
可以注入,但不是注入這個抽象類,而是注入了這個抽象類的子類的代理類,這個子類必須被spring管理uj5u.com熱心網友回復:
一.抽象類不能被實體化,因此抽象類無法交給Spring管理,使用@Autowired是無法注入其他實體的,在方法中呼叫實體肯定是空的;二.我的解決方案:
1.將抽象類的子類交由Spring管理,在子類中注入抽象類中需要使用的實體
2.在抽象類中的公用默認實作的方法中使用反射獲取子類的欄位(注入的實體)
uj5u.com熱心網友回復:
老哥,有代碼嗎?我的子類是繼承了一個抽象類,然后子類呼叫其他的方法,被注入的類一直為空。
例子:
abstract class Father{}
class son extends Father{
@Autowired
private OtherService service; //這里一直都是null
void test(){
service.method(); // 上面為null,這里就報錯
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268020.html
標籤:Java相關
上一篇:請教jsp檔案中response.sendRedirect重定向路徑后加了個斜杠會怎么跳轉
下一篇:springmvc的一個問題
