预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Spring、Struts2、Hibernate整合Spring与Hibernate整合
基于HibernateTemplate通用Dao类实现
事务处理
Spring与Struts整合
SS2H三者整合Spring与Hibernate整合,到底整合什么呢?Spring主要是管理Hibernate的SessionFactory以及事务支持等。我们在Hibernate中需要自己创建SessionFactory实例,这显然不是很好的方法,在Spring中可以通过配置文件,向Dao中注入SessionFactory,Spring的Ioc容器则提供了更好的管理方式,它不仅以声明式的方式配置了SessionFactory实例,也可以充分利用Ioc容器的作用,为SessionFactory注入数据源。还有事务处理,我们业务代码不需要考虑事务,只需要在配置文件配置事务即可。
Spring提供了对多种数据库访问DAO技术支持,包括Hibernate,JDO,TopLink,iBatis等。对于不同的数据库访问Spring采用了相同的访问模式。Spring提供了HibernateDaoSupport类来实现Hibernate的持久层访问技术。
下面是Spring配置文件中配置HibernateSessionFactory的示例代码。
一旦在Spring的Ioc容器中配置了SessionFactoryBean,它将随应用的启动而加载,可以充分利用Ioc容器的功能,将SessionFactoryBean的注入任何Bean,比如DAO组件,以声明式的方式管理SessionFactory实例,可以让应用在不同数据源之间切换。如果应用更换数据库等持久层资源,只需对配置文件进行简单修改即可。
Spring提供了对多种数据库访问DAO技术支持,包括Hibernate,JDO,TopLink,iBatis等。对于不同的数据库访问Spring采用了相同的访问模式。Spring提供了HibernateDaoSupport类来实现Hibernate的持久层访问技术。
下面是Spring配置文件中配置HibernateSessionFactory的示例代码。
一旦在Spring的Ioc容器中配置了SessionFactoryBean,它将随应用的启动而加载,可以充分利用Ioc容器的功能,将SessionFactoryBean的注入任何Bean,比如DAO组件,以声明式的方式管理SessionFactory实例,可以让应用在不同数据源之间切换。如果应用更换数据库等持久层资源,只需对配置文件进行简单修改即可。
例12.1通过Spring的HibernateDaoSuppert查询数据库示例
showcustomers.jspHibernateTemplate主要方法
1、通过注释实现事务(com.spr.Demo.java)2、声明式事务(Proj12_4)对于一个基于B/S架构的JavaEE应用而言,用户请求总是向MVC框架的控制器请求,而当控制器拦截到用户请求后,必须调用业务逻辑组件来处理用户请求。控制器应该如何获得业务逻辑组件?
我们常见的策略是自己在程序中创建业务逻辑组件(即使用new关键字创建),然后调用业务逻辑组件的方法,根据业务逻辑方法的返回值确定结果。但在实际的应用中,很少采用上面的访问策略。基于以下3个理由:
1、控制器直接创建业务逻辑组件,导致控制器和业务逻辑组件的耦合降低到代码层次,不利于高层次解耦。
2、控制器不应该负责业务逻辑组件的创建,控制器只是业务逻辑组件的使用者。无需关心业务逻辑组件的实现。
3、每次创建新的业务逻辑组件导致性能下降。如果系统采用Spring框架。Spring负责业务逻辑组件的创建和生成,并可管理业务逻辑组件的生命周期。可以如此理解:Spring是个性能非常优秀的工厂,可以生产出所有的实例,从业务逻辑组件,到持久层组件,甚至控制器。
控制器如何访问到Spring容器中的业务逻辑组件?为了让Action访问Spring的业务逻辑组件,有两种策略:
1、Spring管理控制器,并利用依赖注入为控制器注入业务逻辑组件。
2、控制器定位Spring工厂,也就是Spring的容器,从Spring容器中取得所需的业务逻辑组件。
对于这两种策略,Spring与Struts2都提供了对应的整合实现。
Struts2框架整合Spring很简单,整合的步骤参见课本。Spring有3个作用:
允许Spring创建Action、Interceptor和Result
由Struts创建的对象能够被Spring装配
如果没有使用SpringObjectFactory,提供了两个拦截器来自动装配actionSS2H三者整合代码比较多,初学者做起来