Java 没有类型为'的合格bean;EntityManager';提供:

Java 没有类型为'的合格bean;EntityManager';提供:,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我在启动我的web应用程序时遇到此错误,但我不知道问题出在哪里,完整跟踪: org.springframework.beans.factory.unsatifiedPendencyException:创建名为“usuarioController”的bean时出错,该名称在文件[C:\Users\Carlos\eclipsejee workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\RedSocial\WEB

我在启动我的web应用程序时遇到此错误,但我不知道问题出在哪里,完整跟踪:

org.springframework.beans.factory.unsatifiedPendencyException:创建名为“usuarioController”的bean时出错,该名称在文件[C:\Users\Carlos\eclipsejee workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\RedSocial\WEB-INF\classes\unce\cum\mydai\RedSocial\controller\usuarioController.class]:通过构造函数参数0表示的未满足依赖关系;嵌套异常为org.springframework.beans.factory.UnsatifiedPendencyException:创建名为“usuarioServiceImpl”的bean时出错:通过方法“setUsuarioDAO”参数0表示的未满足的依赖关系;嵌套的异常是org.springframework.beans.factory.unsatifiedpendencyException:创建名为“usuariodaimpl”的bean时出错,该名称在文件[C:\Users\Carlos\eclipsejee workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\RedSocial\WEB-INF\classes\es\unc\cum\mydai\RedSocial\dao\usuariodaimpl.class]:通过构造函数参数0表示的未满足依赖关系;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“javax.persistence.EntityManager”类型的合格bean可用:至少需要1个符合autowire候选条件的bean。依赖项批注:{}

这些课程包括:

UsuarioController

包es.une.cum.mydai.redsocial.controller;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.ui.ModelMap;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestMethod;
导入e.une.cum.mydai.redsocial.services.UsuarioService;
导入e.une.cum.mydai.redsocial.vo.UsuarioVO;
@控制器
公共类用户控制器{
私人最终用益服务用益服务;
@自动连线
公共用户控制器(用户服务用户服务){
this.usuarioService=usuarioService;
}
@RequestMapping(value=“/registro”,method=RequestMethod.GET)
公共字符串注册表(ModelMap模型){
UsuarioVO usuario=新的UsuarioVO();
模型投入(“usuario”,usuario);
返回“registro”;
}
}
usuarioserviceinmpl

包es.une.cum.mydai.redsocial.services;
导入java.util.Set;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Component;
导入e.une.cum.mydai.redsocial.dao.UsuarioDAO;
导入e.une.cum.mydai.redsocial.vo.UsuarioVO;
@组成部分
公共类UsuarioServiceImpl实现UsuarioService{
私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用私用;
公共UsuarioServiceImpl(){}
公共UsuarioDAO getUsuarioDAO(){
返回usuarioDAO;
}
@自动连线
公共无效setUsuarioDAO(UsuarioDAO UsuarioDAO){
this.usuarioDAO=usuarioDAO;
}
公共UsuarioVO insertarUsuario(UsuarioVO usuario){
返回此.usuarioDAO.create(usuario);
}
公共UsuarioVO findbyId(长id){
返回此.usuarioDAO.read(id);
}
公共USUARIVO updateUsuario(USUARIVO usuario){
返回此.usuarioDAO.update(usuario);
}
公共无效borrarUsuario(UsuarioVO usuario){
this.usuarioDAO.delete(usuario);
}
公共集findbyName(字符串名称){
返回此.usuarioDAO.findByName(名称);
}
公用USUARIVO登录(字符串用户名){
返回此.usuarioDAO.login(用户名);
}
}

包es.une.cum.mydai.redsocial.dao;
导入java.util.HashSet;
导入java.util.Set;
导入javax.persistence.EntityManager;
导入javax.persistence.PersistenceContext;
导入javax.persistence.Query;
导入javax.persistence.Table;
导入org.springframework.context.annotation.ComponentScan;
导入org.springframework.context.annotation.Configuration;
导入org.springframework.stereotype.Component;
导入org.springframework.transaction.annotation.Transactional;
导入e.une.cum.mydai.redsocial.vo.UsuarioVO;
@组成部分
@交易的
公共类usuariodaimpl实现UsuarioDAO{
@持久上下文
受保护的实体管理器实体管理器;
公共usuariodaimpl(EntityManager EntityManager){
this.entityManager=entityManager;
}
公共USUARIVO创建(USUARIVO usuario){
this.entityManager.persist(usuario);
返回usuario;
}
公用USUARIVO读取(长id){
返回这个.entityManager.find(UsuarioVO.class,id);
}
公共USUARIVO更新(USUARIVO usuario){
this.entityManager.merge(usuario);
返回usuario;
}
公共作废删除(USUARIVO usuario){
usuario=this.entityManager.merge(usuario);
此.entityManager.remove(通常为);
}
@抑制警告(“未选中”)
公共集findByName(字符串名称){
Query Query=entityManager.createQuery(
“从“+UsuarioVO.class.getAnnotation(Table.class.name()+”中选择*,其中名称类似于?1或用户名类似于?2”,UsuarioVO.class);
query.setParameter(1,“%”+name+“%”);
query.setParameter(2,“%”+name+“%”);
返回新的HashSet(query.getResultList());
}
公用USUARIVO登录(字符串用户名){
Query Query=entityManager.createQuery(
“SELECT*FRO”+UsuarioVO.class.getAnnotation(Table.class.name()+“WHERE username=?1”,UsuarioVO.class);
query.setParameter(1,用户名);
return(UsuarioVO)query.getSingleResult();
}
}

信息非常清楚:

@PersistenceContext
protected EntityManager entityManager;

您正在自动连接
EntityManager
,而无需在任何地方定义它。您需要一个带有
@配置
注释的类。

应该是哪一个?我在努力学习我的专业