Struts 2, Spring 2, Hibernate 3框架集成

正确集成Struts、Spring和Hibernate是使用SSH架构进行高效开发的第一步,本文简单介绍SSH集成过程中所需要处理的配置文件,希望对大家有所帮助。

  • 集成Struts 2,选用版本为Struts 2.1.6

更新/WEB-INF/web.xml配置文件的内容,在其中添加如下过滤器:

 


但自Struts 2.1.3版本,该过滤器不再建议使用,取而代之的是StrutsPrepareAndExecuteFilter,或者StrutsPrepareFilter与StrutsExecuteFilter搭配使用,以便能够提供ActionContextCleanUp过滤器的功能。


FilterDispatcher过滤器会自动清除ActionContext,以确保不会发生内存泄漏,但是在与像SiteMesh这样的产品集成的时候,这一特性会引发问题,在Struts 2.1.3版本之前可以通过添加ActionContextCleanUp过滤器来修正这一问题。为支持SiteMesh,需要添加的过滤器顺序如下:

  1. ActionContextCleanUp过滤器;
  2. SiteMesh过滤器;
  3. FilterDispatcher过滤器。

相应的配置如下(web.xml文件):


但自Struts 2.1.3版本之后,建议使用如下配置(web.xml):

 

注:

Struts 2主要使用的配置文件如下

  • web.xml:必需的配置文件, 位于/WEB-INF/,Web部署描述符, 包含所有必需的框架组件;
  • struts.xml:可选的配置文件,位于/WEB-INF/classes/, 主配置文件,包含result、action映射、拦截器等等;
  • struts.properties:可选的properties文件,位于/WEB-INF/classes/,包含框架属性信息;
  • struts-default.xml:可选的配置文件,位于/WEB-INF/lib/struts2-core.jar,由Struts提供的默认配置文件;
  • struts-default.vm:可选的配置文件,位于/WEB-INF/classes/,由velocity.properties引用的默认宏;
  • struts-plugin.xml:位于每一个插件JAR文件的根目录下,为插件的可选配置文件,格式同struts.xml;
  • velocity.properties:位于/WEB-INF/classes/,用以覆盖默认的Velocity配置。

Struts 2加载配置文件的顺序如下:

  1. struts-default.xml (捆绑在Core JAR中)
  2. struts-plugin.xml (在其它JAR包中,可以有多个)
  3. struts.xml (由应用提供)
  • 集成Spring,选用版本为2.5.6

在Web环境中,一般使用ContextLoader机制来初始化根application context。

更新/WEB-INF/web.xml文件的内容,添加如下配置:


注:可以使用contextConfigLocation参数来指定Spring加载的配置文件的位置,如果该参数不存在,监听器将使用/WEB-INF/applicationContext.xml作为Spring的默认配置文件。

 

接下来,配置ContextLoader监听器,如下:

 

但是如果使用Servlet 2.3容器或之前版本,需要进行如下配置:


Struts 2框架提供了一种类似于Eclipse的扩展方式,它允许以一种“可插拔”的方式来安装插件。插件提供一个类似struts2-xxx-plugin.jar的文件,该文件便是插件的安装文件,只要将该文件放置在Web应用的WEB-INF/lib下,Struts 2框架便会自动加载该插件。

 

一个Struts 2插件是一个单一的JAR包,该包包含用于扩展、替换或增加现有Struts框架功能的类和配置文件。为了配置一个插件,插件JAR包应包含一个struts-plugin.xml文件,它与struts.xml有相同的格式。

为提供对Spring 2的支持,只需要将struts2-spring-plugin-2.1.6.jar文件拷贝到WEB-INF/lib下便可。Struts 2框架自动加载该插件,在上述jar包中struts-plugin.xml配置文件中有如下配置:

 

 

  • 集成Hibernate,选用版本为3.3.2。

在Spring 的应用环境中,经常会使用FactoryBean来创建一个Hibernate SessionFactory。而后SessionFactroy经由Spring的依赖注入(dependency injection)传递给基于Hibernate的DAO。

关于Hibernate的相应配置可以从Hibernate XML文件读取,该文件位置可有configLocation参数来指定,或者完全由Spring的FactoryBean的配置项指定。


在Spring的配置文件中添加如下配置:

 

 

同时,在hibernate.cfg.xml(默认位置为/WEB-INF/classes/)中配置相应的信息:

 



如果不使用hibernate.cfg.xml配置文件,可以在Spring配置sessionFactory时指定相应的配置项,如下:

 


注:一个典型的本地配置包含一个或多个”mappingResources“,多个”hibernateProperties“,和一个SessionFactory可能使用的”dataSource“,数据源同样可由Hibernate properties文件来指定,但是使用”dataSource“可以支持任何由Spring配置的数据源,而不依赖于Hibernate自己的连接提供者(connection providers)。

 

至此,SSH的整合配置基本完成,当然还有很多细节需要处理,包括向应用中添加相应的JAR包,事务相关配置等等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值