休眠弹簧连接无法自动装配

Posted

技术标签:

【中文标题】休眠弹簧连接无法自动装配【英文标题】:Hibernate Spring connection Could not autowire 【发布时间】:2017-11-11 09:15:37 【问题描述】:

我正在尝试使用 Hibernate 和 Spring 在 OracleDB 上执行一些粗略的操作。 我用 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对于这种依赖。依赖注解:@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=AssegniDao) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:948) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:817) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:731) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:485)

【问题讨论】:

请发布完整的错误,而不是随机的中缀。 Spring 期望 bean 采用驼峰式。因此,将@Qualifier 注释中的AssegniDao 替换为assegniDao 并尝试 试过但没有成功 请发布您的配置。 【参考方案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;

【讨论】:

同上:( 我在 EDIT1 中发布了跟踪

以上是关于休眠弹簧连接无法自动装配的主要内容,如果未能解决你的问题,请参考以下文章

弹簧自动装配不起作用[重复]

Spring框架的新手收到此错误:无法自动装配字段:

Spring-boot,无法自动装配类。未找到默认构造函数引发异常

如何进行 Spring DAO 自动装配

自动装配由 EasyMock 工厂方法生成的 bean?

具有自动装配的字段但得到无法自动装配字段消息