2019-04-22 java web学习3-在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?

(1)Struts主要起控制作用,Spring主要起解耦作用,Hibernate主要起操作数据作用。

(2)Struts2是一个基于MVC设计模式的Web应用框架,在MVC设计模式中Struts2作为控制器(Controller)来建立模型与视图的数据交互。 Struts 2以WebWork为核心,采用拦截器的机制      来处理用户的请求,使业务逻辑控制器与Servlet API完全脱离开。

(3)Spring是一个轻量级的控制反转(IoC)与面向切面(AOP)的容器框架,是轻量的、非侵入的、面向接口编程,由容器控制程序之间的(依赖)关系,当使用IoC一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态的将某种依赖关系注入到组件之中起到的主要作用是解耦。

(4)Hibernate是数据持久化层,是一种新的对象、关系的映射工具,提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制,大大减少数据访问的复杂度。把对数据库的直接操作转换为对持久对象的操作。

(5)Struts、spring、Hibernate在各层的作用:

   <1>struts负责WEB层,ActionFormBean接收网页中表单提交的数据然后通过Action进行处理,再Forward到对应的网页,在struts-config.xml中定义ActionServlet会加载。

   <2>Spring负责业务层管理,即Service或Manager。

          [1]Service层为action提供统计的调用接口,封装持久层的DAO。

          [2]统一管理javaBean方法。

          [3]声明式事务管理。

          [4]集成Hiberante。

   <3>Hiberante负责持久化层完成数据库的CRUD操作,为持久层提供OR-Mapping,它有一组*.hbm.xml文件和POJO是跟数据库中的表相对应的。

   <4>在Struts + Spring + Hibernate中对象的调用流程是jsp->Action->Service->DAO->Hibernate。数据的流向是ActionFormBean接受用户的数据,Action将数据从ActionFromBean中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再forward。而业务层Bean收到这个PO对象之后会调用DAO接口方法进行持久化操作。

你可能感兴趣的:(2019-04-22 java web学习3-在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?)