我有一个测试用例,它依赖于“ticketDao”,如下所示:
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Qualifier;
public class LfnSaleCancellationIntegrationTest extends BaseIntegrationTest {
//@Resource(name = "baseTicketDao")
private BaseTicketDao ticketDao;
....
public void setTicketDao(@Qualifier("baseTicketDao") BaseTicketDao ticketDao) {
this.ticketDao = ticketDao;
}
}
和 BaseIntegrationTest 扩展自 spring 测试框架的 AbstractJpaTests,Spring 是 v3.0.5
运行此测试用例时,我遇到了类似的异常:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No unique bean of type [com.mpos.lottery.te.gamespec.sale.dao.BaseTicketDao]
is defined: expected single matching bean but found 2:
[baseTicketDao, extraballTicketDao]
我的项目进化了很久,其实我第一次遇到这个异常的时候,@Qualifier 就解决了。直到今天这个项目已经发生了很大的变化,但我真的不知道为什么@Qaulifier 和@Resource 不再工作了。
如果我删除'ticketDao'的依赖,测试用例将通过。我想知道弹簧配置是否有一些变化会导致这个异常?或者...我google了很多,但似乎没有其他人遇到过这样的问题,请给出您的意见,非常感谢!