突然NoUniqueBeanDefinitionException

时间:2018-09-05 09:15:13

标签: java spring annotations

我必须为使用带注释的Spring的旧项目做一些开发。

我从SVN获得了它(自上次部署以来没有任何变化),像往常一样使用Gradle产生了战争,将其部署在具有与以前相同版本的Tomcat中,并尝试以相同的Java版本运行。除使用的Eclipse版本外,其他所有操作均一如既往。

问题在于,对于定义扩展抽象类的类的每个字段,我都会得到--。就像Spring出于某种原因无法确定应该使用哪个类,即使在方法的签名中指定了它一样:

NoUniqueBeanDefinitionException

@Autowired @Override protected void setEntityDao(ListboxItemDao entityDao) {...} 扩展ListboxItemDao的地方

我得到了这个例外:

GenericDao

我看到我可以通过添加一个org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.section.generic.dao.GenericEntityDao] is defined: expected single matching bean but found 32: listboxItemDao, anotherDao1, anotherDao2... 来解决它,但是我不明白为什么没有这个@Qualifier("listboxItemDao")之前它会起作用。现在,非常令人讨厌的是,由于更改很小,我不得不将此@Qualifier添加到所有服务中...

在所有环境相同的情况下,我现在需要这个@Qualifier是什么意思?

0 个答案:

没有答案