0

这是我得到的错误:

严重:StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException:创建名为“usuarioControlador”的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.blah.base.database.DAO.UsuarioDAO com.blah.base.controlador.UsuarioControlador.usuarioDAO;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:在文件 [C:\Users\Owner\workspaceSpring.metadata.plugins\org.eclipse.wst.server.core\tmp3\ wtpwebapps\base\WEB-INF\classes\com\yavale\base\database\hibernetDAO\UsuarioHibernetDao.class]:通过索引为 0 类型 [org.hibernate.SessionFactory] ​​的构造函数参数表示的不满足依赖关系::没有找到符合条件的类型为 [org.hibernate.SessionFactory] ​​的 bean 依赖项:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Qualifier(value=sessionFactory)}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [org.hibernate.SessionFactory] ​​的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Qualifier(value=sessionFactory)} 限定符(值 = sessionFactory)}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [org.hibernate.SessionFactory] ​​的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Qualifier(value=sessionFactory)} 限定符(值 = sessionFactory)}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为 [org.hibernate.SessionFactory] ​​的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Qualifier(value=sessionFactory)}

这是我的 UsuarioControlador(控制器):

@Controller
@RequestMapping("/")
public class UsuarioControlador {

private UsuarioDAO usuarioDAO;
@Autowired 
public void setUsuarioDAO(UsuarioDAO usuarioDAO) {
    this.usuarioDAO = usuarioDAO;
}

@RequestMapping(method = RequestMethod.GET)
public String list(Model model) {
    List<Usuario> usuarios = usuarioDAO.listarUsuarios();
    model.addAttribute("usuarios", usuarios);

    return "index";
}
}

这是 UsuarioDAO:

public interface UsuarioDAO {

void insertarUsuario(Usuario usuario);
void modificarUsuario(Usuario usuario);
List<Usuario> listarUsuarios();
Usuario buscarUsuario(String idUsuario);
void eliminarUsuario(Usuario usuario);

}

这是实现 UsuarioDAO 的类:

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Service;

@Service(value="UsuarioDAO")
public class UsuarioHibernetDao extends HibernateDaoSupport implements UsuarioDAO{

@Autowired
public UsuarioHibernetDao(@Qualifier("mySessionFactory") SessionFactory 
        sessionFactory) {
    this.setSessionFactory(sessionFactory);
}


public void insertarUsuario(Usuario usuario) {
    this.getHibernateTemplate().save(usuario);
}

public void modificarUsuario(Usuario usuario) {
    this.getHibernateTemplate().update(usuario);
}

public List<Usuario> listarUsuarios() {
    return this.getHibernateTemplate().find("from Usuario");
}

public Usuario buscarUsuario(String idUsuario) {
    return this.getHibernateTemplate().load(Usuario.class, idUsuario);
}

public void eliminarUsuario(Usuario usuario) {
    this.getHibernateTemplate().delete(usuario);
}

}

这是我的 servlet-context.xml:https ://dl.dropboxusercontent.com/u/31349296/servlet-context.xml

我是春天的新手,所以我完全迷失了这个。

编辑:这是完整的堆栈跟踪:https ://dl.dropboxusercontent.com/u/31349296/log.txt

编辑2

在此处输入图像描述

4

1 回答 1

1

您在 Qualifier 注释中使用了错误的标识符。bean id 是“mySessionFactory”,但您提供了“sessionFactory”。此外,确保内容组件扫描正在扫描正确的包。

更新:

另一个错误可能与休眠会话的导入有关。你应该使用org.hibernate.Session而不是org.hibernate.classic.Session

于 2013-08-14T17:47:55.267 回答