预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES16页第PAGE\*MERGEFORMAT16页共NUMPAGES\*MERGEFORMAT16页Spring+Hibernate整合Spring是一个轻量级的bean容器,它为业务对象(businessobjects)、DAO对象和资源对象(如:JDBC数据源或者HibernateSessionFactorie等)提供了IoC类型的装配能力。Spring通过使用一个xml格式的配置文件,为开发者提供了一种通过定制属性文件来手动管理单例对象或工厂对象的可选择性。由于Spring将非侵入性做为一个重要的目标,因此由Spring配置管理的bean均不需要依赖Spring自身的接口和类,就可以通过它们的bean属性完成配置。从而可以被应用到任何环境中,无论你开发的是一个J2EE的web应用还是一个桌面应用甚至只是一个applet都可以。在使用Hibernate的应用中,Spring对DAO对象通常的事务管理机制应该特别引起关注。它的目的就是分离数据访问和事务处理,使事务性业务对象不与任何特殊的数据访问或事务策略耦合在一起,从而不影响业务对象的可复用性。这种划分既可以经由事务模板(TransactionTemplate)用在java代码中编程的方式实现,也可以经由AOP的事务拦截器(一般用TransactionProxyFactoryBean)用在配置文件中声明的方式实现。无论是本地的Hibernate/JDBC事务,还是JTA事务都支持对象外的事务策略,这对于本地的无状态会话Bean是一个非常有用的选择。Spring的HibernateTemplate类提供了一个简单的方式实现了Hibernate-basedDAO对象,而不必关心如何获得Hibernate的Session实例,也不必关心多方参与的事务处理。无需使用try-catch块,也无需进行事务检查。一个简单的Hibernate访问方法就完全解决了这些麻烦!无论是在多个DAO接口还是在多方事务的情况下,Spring使得多种DAO对象无缝地协同工作。例如:某些DAO对象可能是基于plainJDBC的实现,更适合于经由Spring的JdbcTemplate来避免手动的异常处理。你可以单独地使用许多Spring特性,因为Spring的所有对象都是设计成可复用的JavaBean的集合。使用其他的Spring特性时,应用配置概念是一个附加的特性,并不是一个必须的特性。无论如何,当你要决定去构建一个象Spring这样的内在的基础架构的时候并没有什么范围上的限制。1.介绍:资源管理典型的业务应用系统常常由于重复的资源管理代码而导致混乱。许多项目试着用自己的方法来解决这个问题,有时为此要付出失败的代价,Spring针对适当的资源管理提倡了一种引人注目的简单方法:即经由模板来倒置控制(Inversionofcontrol),例如:基础类使用回调接口,或者应用AOP拦截器。其基础核心是适当的资源处理和将特殊的API异常转换为一个unchecked的基础异常。Spring引入了一个DAO异常层用于任何数据访问策略。Spring框架对于直接的JDBC或JdbcTemplate类,都会将Connection异常、SQLException异常转换为适当的DataAccessException异常,包括对特殊数据库的SQL错误转换为有意义的异常。经由不同的事务管理对象,Spring支持JTA和JDBC事务。Spring也提供对Hibernate的支持,它的这种支持由类似于JdbcTemplate的HibernateTemplate类、HibernateInterceptor类,还有Hibernate事务管理类组成。Spring框架最主要的目的是使系统层次分明,即将数据访问和事务处理同应用对象分离开来。所有的业务对象都不再依赖数据访问或者事务策略。不再有硬编码的资源查找代码,不再有难以替换的单例对象,也不再需要定制服务注册。所有的单独的数据访问特性均无需依赖于Spring而单独使用,无需让Spring知道,同时也可以通过Spring的应用配置来进行装配(提供基于XML的配置和对普通JavaBean实例的交叉引用)。在一个典型的Spring应用中,大部分重要的对象都是普通的JavaBean:数据访问模板对象(dataaccesstemplates)、数据访问对象(使用数据访问模板对象的