Struts2 + Spring + Hibernate 入门 1
来源:互联网 发布:php __isset 在哪用 编辑:程序博客网 时间:2024/05/17 07:35
用工具之前先了解工具,SSH不是一个框架的三部分,而是三个不同框架集成使用,它们既可以单独使用,也可以与其他工具进行搭配,三者之间比较好的遵循了设计模式里的“高内聚低耦合”原则,学习和使用比较方便,尤其是利于快速开发web应用程序,构建灵活、易于扩展,目前比较流行。
基于MVC的分层原理,一个集成了SSH的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和实体层。
下面是一个大致的示意图:
以web应用为例,整个业务流程大致是这样的:
1、在表示层中,首先通过JSP或html等类型的页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts2根据配置文件(struts.xml)将Request委派给相应的Action处理。
2、在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
3、在持久层中,则依赖于Hibernate的配置文件(*.hbm.xml)来完成对象化映射和数据库交互,用户无需在具体代码中暴露类SQL语句,处理DAO组件请求的数据,并返回处理结果。
有上述内容可以看出,Struts2主要负责MVC中C的职能。
一、Struts2
表面上看,与很多向后兼容的框架不同,Struts1和Struts2是两种差别巨大的产品,可以参考下面文章:
《 Struts1与Struts2的区别》
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品而非Struts1的升级。
二、Spring
百度出来的结果:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
为了达成IoC,就有赖Spring的核心机制:依赖注入。依赖注入使应用中的各种组件不需要以硬编码方式耦合,甚至无须使用工厂模式。当一个实例需要另一个实例时,通过Spring框架的配置文件(*.bean.xml),系统自动提供所需要的实例,无须.java程序显式获取。这种解耦方式类似于EJB(EJB上手困难),但Spring使得开发人员使用基本的JavaBean来完成以前只可能由EJB完成的事情,而且其用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
在编码实践中,Spring又很像中间层容器,向上与MVC框架整合,向下与持久层框架(例如Hibernate)整合,大大提高开发速度。
三、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
Hibernate执行流程如下:
使用Hibernate的主要原因:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2、很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,开发更对象化,减少冗余代码和工作量。
3、移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变原hibernate代码。
4、支持透明持久化,因为hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性(不改变原有model的代码结构)。
- Struts2 + Spring + Hibernate 入门 1
- struts2+spring+hibernate入门开发
- Struts2 + Spring + Hibernate 入门 2
- struts2+hibernate+spring(1)
- struts2+hibernate基础入门(1)
- Struts2、Spring和Hibernate应用实例1
- Struts2、Spring和Hibernate应用实例1
- struts2.1+hibernate+spring 乱码处理
- spring+hibernate+struts2整合方案(1)
- spring+hibernate+struts2整合方案(1)
- struts2,hibernate,spring整合笔记(1)
- struts2+hibernate+spring+ftl....
- struts2+hibernate+spring(2)
- struts2+spring+hibernate分页
- struts2+spring+hibernate
- struts2+hibernate+spring整合
- struts2 spring hibernate 整合
- struts2+spring+jpa(hibernate)
- Java使用百度云存储BCS-让你的数据下载飞起来
- Volley自动获取以及存储Cookie
- java PBE算法
- SetBuddyControl动态绑定MapControl
- hadoopshell使用指南
- Struts2 + Spring + Hibernate 入门 1
- 技术blog07 by 八戒
- Win8 64位下通过PowerDesigner连接mysql生成PDM
- 机器学习相关链接帖
- Repeated DNA Sequences
- VLC简介
- android中利用java反射原理将对象添加到sqlit数据库的万能方法
- 网址收集
- 关于rowspan和colspan的区别;