引言:
学习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. 创建Spring的bean配置文件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. 定义Spring和Hibernate配置文件集成
选择已经存在的applicationContext.xml集成即可。
3. 指定数据源
这里用到了提前在Database窗口中配置好的数据源。在DB Driver中选择好即可。
4. 定义SessionFactory属性文件
这里选择不创建SessionFactory的帮助类。因为有Spring的SessionFactory注入。
三、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。这个是struts2和spring集成的关键。
四、web.xml配置文件
通过上述3个步骤的操作,
在项目的/WebRoot/WEB-INF/web.xml中会自动生成Struts2的配置信息。如下:
但是,我们还需要配置一下Spring 的监听。
在这里就涉及到创建Spring的bean配置文件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.jar并Remove掉即可。
在applicationContext.xml配置文件中会根据Hibernate的配置自动生成dataSource和sessionFactory的信息,但是偶尔也会有一些问题,比如通过数据源的表生自动生成实体类后,在此配置文件中却没有自动生成mappingResources的映射信息。