在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中定义<action-mapping>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接口方法进行持久化操作。
在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?的更多相关文章
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤
在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...
- SSH项目(struts+spring+hibernate)搭建_代码简化
在上篇讲到SSH框架的搭建后,为了有利于随时能熟练的把一个SSH的项目快速的搭建起来,我又进一步对其了解学习,对代码进行了简化,大家相互讨论学习. 为什么要简化: 如果要做一个大项目,假设项目的ac ...
- struts2+spring+hibernate(SSH)框架的搭建和总结
SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...
- SSH面试题(struts2+Spring+hibernate)
struts2 + Spring +hibernate Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory ...
- SSH框架简化(struts2+spring+hibernate)
目的: 通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: 1.运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91 ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...
- Struts2 + Spring + Hibernate
Struts2 + Spring + Hibernate整合. 使用的是无配置方法进行SSH的整合,struts-convertion plugin + spring annotation + hib ...
- Maven搭建struts2+spring+hibernate环境
Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂 ...
- Struts2+Spring+Hibernate整合开发(Maven多模块搭建)
Struts2+Spring+Hibernate整合开发(Maven多模块搭建) 0.项目结构 Struts2:web层 Spring:对象的容器 Hibernate:数据库持久化操作 1.父模块导入 ...
随机推荐
- 牛客 2B 树 (组合计数)
传送门 大意: 给定n节点树, 求划分为不超过$k$个连通块的方案数. n,k<=300. 核心观察是每个连通块深度最低的点固定以后染色方案就固定了. 所以答案为$\sum\limits_{i= ...
- 【Activiti】为每一个流程绑定相应的业务对象的2种方法
方式1: 在保存每一个流程实例时,设置多个流程变量,通过多个流程变量的组合来过滤筛选符合该组合条件的流程实例,以后在需要查询对应业务对象所对应的流程实例时,只需查询包含该流程变量的值的流程实例即可. ...
- Vue路由守卫之路由独享守卫
路由独立守卫,顾名思义就是这个路由自己的守卫任务,就如同咱们LOL,我们守卫的就是独立一条路,保证我们这条路不要被敌人攻克(当然我们也得打团配合) 在官方定义是这样说的:你可以在路由配置上直接定义 ...
- JS实现table表格在鼠标移动出现一行变色或者十字叉变色
1,一行变色 <script> function trBg(){ var tab=document.getElementById("table"); var tr=ta ...
- 如何卸载rpm
首先通过 rpm -q <关键字> 可以查询到rpm包的名字 或者rpm -qa|grep 关键字 然后 调用 rpm -e <包的名字> 删除特定rpm包 如果遇到依赖,无 ...
- JVM常用指标查询
一.what‘s going on in Java Application 当系统卡顿,应用莫名被杀掉,我们应该怎么排查?在我已知的系统挂掉的情况,只经历过两种:1.内存申请不了(OOM):2.CPU ...
- date( ) 日期函数
date('Y-m-dT2:00') 实际时间为14:00 date('Y-m-d 2:00') 实际时间为2:00 扩展:每天的时间戳秒数为 86400
- 自学Python-基于tcp协议的socket
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- uft 测试工具使用
选择 uft 自带小飞机 cs测试 开始设置 启动插件管理 选择测试 软件类型 cs bs 新建录制项目 各个功能按钮 添加测试程序工作路径 进入录制 保存录制 ...
- zencart只有购买过此产品的客户才能评价产品
当前登录的客户买过此产品时,才显示评价按钮: <?php $rev_query = "select count(*) as count from orders o ,orders_pr ...