簡體   English   中英

春季:無法自動裝配擴展了另一個Bean的Bean

[英]Spring: Cannot autowire a Bean which extends another Bean

我想為Dao類編寫一個JUnit測試。 dao不需要任何保存方法,因為它僅讀取一些數據。

測試正在使用HSQLDB,我需要先插入一些測試數據。 因為我不想只編寫代碼來使測試運行,所以我將DaoImpl類擴展為具有save方法。

現在,我想@Autowire DaoTestImpl類,但發現類型為[…]No合格bean因依賴性錯誤出現。

我在src / main中的設置如下所示:

interface Dao ...
@Repository("Dao") class DaoImpl implements Dao ...

對於src / test中的測試,我有了新類:

@Repository("DaoTestImpl") class DaoTestImpl extends DaoImpl

在JUnit測試中,我正在使用

@Autowired
@Qualifier("DaoTestImpl")
private DaoTestImpl daoTestImpl;

自動接線擴展另一個Bean的Bean時出現問題嗎? 如果DaoTestImpl類正在實現接口,Spring將找到合適的Bean。 但是在這種情況下,我無法測試DaoImpl類。

您需要將接口聲明為字段,並使用實現的類的名稱添加限定符。 然后它將按預期自動布線。 該代碼將如下所示:

@Autowired
@Qualifier("daoTestImpl")
// The interface
private Dao dao;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM