在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.父模块导入 ...
随机推荐
- 预约系统(二) MVC框架搭建
采用VS2013,自带的MVC4来搭建 MODEL层,表对象的建立: T_Bm.cs using System; using System.Collections.Generic; using Sys ...
- MySQL5.7修改数据库目录!
MySQL5.7默认安装,修改之前,停止MySQL服务. 数据库目录:C:\ProgramData\MySQL\MySQL Server 5.7\Data 配置文件:C:\ProgramData\My ...
- vscode常用插件列表
vscode插件 备注 Markdown PDF 把markdown文件转换成别的文件 Markdown TOC markdown文件目录生成 PHP Debug PHP调试 PHP Intenlli ...
- TableView 键盘弹起冲突
1.TableView 上cell 带有 TextField,如果 是Plain 形式的TableView ,并且设置SectionHeader的 取消粘滞效果 会导致键盘弹起,页面不能正常 上移 问 ...
- Spingboot使用log4j2
1.pom.xml加入log4j2,并同时把spring boot默认的logging去掉,注意一定要全部排除否则会报错. <dependency> <groupId>org. ...
- Q2Day79
requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...
- jQuery ajax 提交表单图片
基于 jQuery HTML: <form id="form" enctype="multipart/form-data"> <input t ...
- 利用shell脚本做一个用户登录系统
效果图如下: #!/bin/bash# while truedocat << EOF//======================\\\\| 用户登录系统 |-------------- ...
- Linux 文件恢复(XFS & EXT4)
在Linux中,删除rm命令使用需谨慎,有时候可能由于误操作,导致重要文件删除了,这时不要太紧张,操作得当的话,还是可以恢复的. EXT 类型文件恢复 删除一个文件,实际上并不清除inode节点和bl ...
- linux 静态路由
用ip route删除默认路由 ip route del default via 192.168.18.1 用route删除默认路由route del default gw 192.168.18.1 ...