gpt4 book ai didi

java - Spring:无法 Autowiring 扩展另一个 Bean 的 Bean

转载 作者:行者123 更新时间:2023-11-30 07:34:26 24 4
gpt4 key购买 nike

我想为 Dao 类编写 JUnit 测试。 dao 不需要任何保存方法,因为它只读取一些数据。

测试使用HSQLDB,我需要先插入一些测试数据。由于我不想编写代码只是为了运行测试,因此我扩展了 DaoImpl 类以具有保存方法。

现在我想@Autowire DaoTestImpl 类,但收到没有为依赖关系找到[…]类型的限定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;

Autowiring 一个扩展另一个 Bean 的 Bean 时是否有问题?如果 DaoTestImpl 类正在实现接口(interface),Spring 将找到合适的 Bean。但在这种情况下我无法测试 DaoImpl 类。

最佳答案

您需要将接口(interface)声明为字段,并使用实现的类的名称添加限定符。然后它将按预期 Autowiring 。代码如下所示:

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

关于java - Spring:无法 Autowiring 扩展另一个 Bean 的 Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35604246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com