Spring 3.0 + Struts 2.1 + Hibernate 3.3 框架整合小结

 引言:

 

学习SSH框架有一阵了,今天对SSH框架整合做一个小结。

我的操作步骤是  Spring  à  Hibernate  à  Sturts 2

环境是MyEclipse 9.0 主要采用添加功能支持的方式:( MyEclipse à  add xxxx capabilities )

 

 

创建Web Project略。

 

 

一、Spring

 

1. 添加jar包到项目中

 

 

 

 

这里选择的是Spring 3.0 ,其中Library的添加视情况而定。

因为需要 对业务进行 事务管理 数据库信息 的持久化操作 所以这里添加了前4个库。

为了方便,还选择了将jar包拷贝到了WEB-INF/lib目录下。

 

 

2. 创建Springbean配置文件applicationContext.xml

 

方案一:

 

 

 

 

方案二:

 

 

 

方案一的方式,将配置文件放在了src源目录下,

方案二的方式,将配置文件放在了WEB-INFO目录下。

 

 

两种方案的区别在于,后续web.xml配置时,有所不同。详看第四部分:web.xml配置信息

 

 

 

二、Hibernate

 

1. 添加Hibernate支持

 

 

 

 

这里选择了Hiberante 3.3 版本。

jar包选择为默认的前2项, 同样将jar包拷贝到了WEB-INF/lib目录下。

 

 

1.       定义Hiberante的配置文件

 

 

 

因为之前创建了Spring的配置文件applicationContext.xml

这里选择将Hibernate的配置信息集成存放到Spring的配置文件中。

 

 

2. 定义SpringHibernate配置文件集成

 

 

 

选择已经存在的applicationContext.xml集成即可。

 

 

3.       指定数据源

 

 

 

这里用到了提前在Database窗口中配置好的数据源。在DB Driver中选择好即可。

 

4. 定义SessionFactory属性文件

 

 

这里选择不创建SessionFactory的帮助类。因为有SpringSessionFactory注入。

 

 

 

三、Struts 2

 

 

1.       选择项目中使用的Struts 2 的版本 URL 访问的路径模式

 

 

 

 

2.       添加Struts2 jar包到项目中。

 

 

 

这里选择上Struts 2 Spring Libraries 这一项,比较重要。

因为它里面包含有spring-web-2.5.6.jar这个架包,我们稍后需要在web.xml配置文件中配置spring的监听,会用到其中的ContentLoaderListener类。

另外一个就是,它还含有struts2-spring-plugin-2.2.1.jar。这个是struts2spring集成的关键。

 

 

 

四、web.xml配置文件

 

通过上述3个步骤的操作,

在项目的/WebRoot/WEB-INF/web.xml中会自动生成Struts2的配置信息。如下:

 

 

 

但是,我们还需要配置一下Spring 的监听。

 

在这里就涉及到创建Springbean配置文件applicationContext.xml时的两种方案了。

 

如果是方案一的方式,将配置文件放在了src源目录下:

 

此时,需要配置上下文环境的参数,指定一下配置文件的位置

 

 

 

如果是方案二的方式,将配置文件放在了WEB-INFO目录下。

 

此时,可以省略上下文环境指定配置文件位置的步骤

 

 

 

 

五、注意事项

 

在整合过程中最常见的异常问题除了配置信息有误,就是jar包冲突。

比如antlr这个架包。在有的Struts 2版本中会有一个antlr-2.7.2.jar

Hibernate中,则会有一个antlr-2.7.6.jar

如果项目中同时存在这两个jar包,一般会在控制台中报异常。

 

推荐解决方案:

 

Window à Preferences 中键入strtus 2 找到antlr-2.7.2.jarRemove掉即可。

 

 

 

applicationContext.xml配置文件中会根据Hibernate的配置自动生成dataSourcesessionFactory的信息,但是偶尔也会有一些问题,比如通过数据源的表生自动生成实体类后,在此配置文件中却没有自动生成mappingResources的映射信息。

 

 

 

其他的一些问题就不多描述了。此次主要是对SSH框架整合过程的一个小结。

你可能感兴趣的:(spring,Hibernate,struts2,小结,SSH整合)