Hibernate+Struts+Spring学习总结

Hibernate+Struts+Spring学习总结

从八月份到十月中旬这段时间一直在学习HibernateStrutsSpring以及SSH。到现在为止,自己已经能够简单的运用这三大框架。下面说一下自己对这些内容的初步认识。

从以下几个方面

首先谈谈hibernatehibernate是是什么的东西,做什么用的。

在介绍hibernate之前,先给大家介绍一下ORMobject relation mapping)

对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

ORM的优点:

a):JDBC操作数据库很繁琐

b):SQL语句编写并不是面向对象的

c):可以在对象和关系之间建立关联来简化编程

d):O/R MAPPING 简化编程

e):O/R MAPPING 跨越数据库平台

1、Hibernate

简介:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSPWeb应用中使用,最具革命意义的是,Hibernate可以在应用EJBJ2EE架构中取代CMP,完成数据持久化的重任。

优点:

a)、Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性

b)、Hibernate 的性能非常好,因为它是个轻量级框架。 映射的灵活性很出色。

c)、hibernate 同时支持多种不同的关系型数据库平台

d)、Java程序员可以随心所欲的使用对象编程思维来操纵数据库

所需的核心jar包:

a)、dom4j.jar: dom4j是一个JavaXML API,类似于jdom,用来读写XML文件的。这是必须使用的jar包,Hibernate用它来读写配置文件。

b)、commons-collections.jarApache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。

c)、antlr-2.7.6.jar:执行sql语句,必备包

d)、javassist-3.12.0.GA.jarJAVA programming ASSISTant,它是一个类库编辑Java字节码。必须的包

e)、slf4j-api-1.6.1.jar:日志系统服务的apiSLF4j是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用所希望的数据库

f)、hibernate-jpa-2.0-api-1.0.0.Final.jar:JPA规范化的支持(这个包最好加);

进行junit测试时所需jar包:

a)、hibernate-jpa-2.0-api-1.0.0.Final.jar

b)、junit-4.8.jar

 

2、Struts2

简介:Struts 2是一个简洁,可扩展的框架,用于创建企业级就绪的Java Web应用程序。该框架旨在从搭建,部署,维护应用程序上简化整个开发周期。WebWork2最初被称为ApacheStruts 2。独立工作几年后,WebWorkStruts的社区联手创建的Struts2。这个新版本的Struts易于使用。

优点:

a)、 Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程

b)、 使用OGNL进行参数传递。

OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取RequestAttributeApplicationSessionParameters中的数据。大大简化了开发人员在获取这些数据时的代码量。

c)、强大的拦截器

Struts2的拦截器是一个Action级别的AOPStruts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的,可以将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能

d)、易于测试

Struts2Action都是简单的POJO,这样可以方便的对Struts2Action编写测试用例,大大方便了Java Web项目的测试。

e)、模块化

Struts2已经把模块化作为了体系架构中的基本思想,可以通过三种方法来将应用程序 模块化:

将配置信息拆分成多个文件

把自包含的应用模块创建为插件

创建新的框架特性,即将与特定应用无关的新功能组织成插件,以添加到多个应用中去。

f)、全局结果与声明式异常

为应用程序添加全局的Result,和在配置文件中对异常进行处理,这样当处理过程中出现指定异常时,可以跳转到特定页面,这一功能十分实用。

所需核心jar包介绍:

a)、commons-fileupload-1.3.jar: 文件上传组件,2.1.6版本后必须加入此文件。

b)、commons-io-2.0.1.jar: IO输入输出流组件,主要完成文件的读写功能。

c)、commons-lang3-3.1.jar:跟java.lang这个包的作用类似,Commons Lang这一组API也是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()equals()方法、数组操作、枚举、日期和时间的处理等等

d)、commons-logging-1.1.3.jarApache Commons包中的一个,包含了日志功能。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATHlog4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不

到就用Simple Logger

f)、freemarker-2.3.19.jar:一个模板引擎,一个基于模板生成文本输出的通用工具

g)、log4j-1.2.17.jar:日志框架

h)、ognl-3.0.6.jar: 对象图导航语言(Object Graph Navigation Language),它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段

类型转化等功能。

i)、struts2-core-2.3.15.1.jar: Struts2框架的核心类库。

j)、struts2-spring-plugin-2.3.15.1.jar:将action交给spring来管理的核心jar文件

k)、xwork-core-2.3.8.jarXwork核心类库,Struts2在其上构建。

3、Spring

简介:

Spring是一个开源框架,它由RodJohnson创建。它的诞生是为了简化企业级开发。说的spring势必提到EJB,和EJB相比spring是一个轻量级容器,用过EJB的开发者应该知道当我们写一个简单的Web Project时,就需要写不少java文件和xml文件。
Spirngl里面重要的两个概念一个是IOC/DI Inversion of Control,反转控制),另一个是AOPAspect-Oriented Programming,面向切面编程),在学习的过程中,如果把这两个学完的话,你差不多就把spring学完了

优点:

a)、使用SpringIOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

b)、可以提供众多服务,事务管理,WS等。

c)、AOP的很好支持,方便面向切面编程。

d)、对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA

e)、Spring DI机制降低了业务对象替换的复杂性。

f)、Spring属于低侵入,代码污染极低。

g)、Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

所需核心jar包:

a)、aspectjrt.jar: 处理事务和AOP所需的包

b)、aspectjweaver.jar:与AOP有关

c)、cglib-nodep-2.1_3.jarcglib代理 实现AOP的一种方式 ; 和他对应的是DynaProxy(java动态代理)

d)、common-annotations.jarspring的注解包,

e)、commons-dbcp.jar:支持BasicDataSource来配置数据库连接

h)、commons-logging.jarASF出品的日志包,struts2 2springhibernate框架使用这个日志包来支持Log4JJDK 1.4+的日志记录

g)、commons-pool.jar:支持BasicDataSource来配置数据库连接

hspring.jarspring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar...

 

4、SSH

Struts+hibernate+spring的整合这里不再写啦。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值