如何解决 – 创建名为’defaultController’的bean时出错

我是Spring MVCHibernate的新手。 几天我试图做一个简单的春季项目,但在那里遇到了一些错误。 错误说org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为’CustomerDAOImp’的bean时出错

这是我的错误

HTTP状态500 – 内部服务器错误

类型exception报告

messageInternal服务器错误

description服务器遇到内部错误,导致无法完成此请求。

例外

javax.servlet.ServletException:servlet调度程序的Servlet.init()引发了exception根本原因

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为’CustomerDAOImp’的bean时出错:通过字段’sessionFactory’表示的不满意的依赖关系; 嵌套exception是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型’org.hibernate.SessionFactory’的限定bean可用:预期至少有1个bean可以作为autowire候选者。 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}根本原因

org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型’org.hibernate.SessionFactory’的限定bean可用:预计至少有一个bean可以作为autowire候选者。 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}注意GlassFish Server Open Source Edition 4。1。1日志中提供了exception的完整堆栈跟踪及其根本原因。

GlassFish Server开源版4.1.1

我用maven multi模块完成了这个项目。 这里’CustomerDAOImp’是我在CustomerDAOImp类中定义的存储库的名称。 这是扩展GenericImp类并实现CustomerDAO接口的java类,并且进一步的CustomerDAO扩展了GenericDAO接口。

CustomerDAOImp

@Repository(value = "CustomerDAOImp") public class CustomerDAOImp extends GenericDAOImp implements CustomerDAO{ } 

CustomerDAO

 public interface CustomerDAO extends GenericDAO{ } 

GenericDAO

 public interface GenericDAO { void insert(T t); void update(T t); boolean delete(int id); List getAll(); T getById(int id); } 

我的控制器用于映射jsp页面

 @Controller public class DefaultController { @Autowired CustomerDAOImp customerDaoImp; @RequestMapping(value = "/", method = RequestMethod.GET) public String index() { return "user/dairy/index"; } @RequestMapping(value = "/customer", method = RequestMethod.GET) public String customer(Model model) { model.addAttribute("customer", customerDaoImp.getAll()); return "user/dairy/customer"; } } 

调度员servlet.xml中

        

applicationContext.xml中

           org.hibernate.dialect.MySQLDialect  true     

这是我的项目结构

**这是我的项目结构**

希望得到积极的回应,谢谢………..

你是如何创建ApplicationContext的? 您是否已在程序中以编程方式创建它,或者期望您的Spring声明能够处理它?

根据您提供的内容,看起来在调度程序初始化和相应的DAOdependency injection期间发生了故障。 并且在applicationContext.xml中定义了DAO依赖项,这与dispatcher-servlet.xml不同。 所以似乎在加载dispatcher-servlet.xml没有加载applicationContext.xml

检查您的web.xml以确保您有一个ContextLoader,它可以自动实例化Spring MVC应用程序的根和Web应用程序上下文。

这些行应该存在:

  org.springframework.web.context.ContextLoaderListener  

您可以如上所述初始化您的上下文或以编程方式执行; 有关详细信息,请参阅以下内容: https : //docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-servlet-context-hierarchy和https://docs.spring.io /spring/docs/current/spring-framework-reference/core.html#context-introduction

您还可以检查上下文是否在日志中正确加载。 他们将提供有关bean初始化的详细信息。 在应用程序初始化和servlet加载阶段共享您的日志消息。

一些日志记录参考: https : //docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html