我试图在使用Hibernate和Spring的OracleDB上进行一些crud操作。 我用HibernateTools生成了这个类。我创建了一个这样的接口:
public interface AssegniDao {
}
和这样的实现
@Repository
@Qualifier("AssegniDao")
public class AssegnoDaoImpl extends AbstractAutowiredDao implements AssegniDao {
}
这是一个名为" dataLayer"的项目。从另一个项目我用Junit测试它但我总是有这种错误
嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段
我该如何解决这个问题?
完整堆栈跟踪
引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到类型为[it.bnl.btre.orchass.busin.dao.AssegniDao]的匹配bean依赖:预期至少有1个bean有资格作为autowire候选者对于这种依赖。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true),@ org.springframework.beans.factory.annotation.Qualifier(value = AssegniDao)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:948) 在org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:817) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:731) 在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:485)
答案 0 :(得分:1)
不要忘记先扫描包裹:
<context:component-scan base-package="the.path.to.your.package.with.controller" />
将bean命名为:
@Repository("AssegnoDao")
public class AssegnoDaoImpl extends AbstractAutowiredDao implements AssegniDao {
}
然后,当你使用@Autowire
时,不要忘记指定bean的名称:
@Autowired
@Qualifier("AssegniDao")
private AssegniDao assegniDao;