清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,之后应该会用的到。前端
--WHjava
1、web项目中如何使用spring?mysql
当tomcat启动时,就应该加载spring的配置文件,而不是每次都要手动使用new ClassPathXmlApplicationContext来加载xml。因此,spring提供了一个ContextLoaderListener。有了它,tomcat启动时,就会加载配置文件。web
导入spring.web....jarspring
一、web.xml中添加监听器sql
这样配置的监听器,默认加载的是WEB-INF目录下的xml文件,而咱们的配置文件在src下,因此须要进行下一步的配置。数据库
二、web.xml中配置 applicationContext.xml 位置express
三、从ServletContext中得到spring容器,建立的容器已经放在ServletContext中了编程
2、SSH整合所用到的jar包缓存
2.一、struts2所需jar
版本:2.3.15.1
位置:struts-2.3.15.1\apps\struts2-blank\WEB-INF\lib
总共:13个jar包
2.二、hibernate
版本:3.6.10
所需jar
一、核心jar:hibernate3.jar
二、必须:lib/required 全部
三、jpa :lib\jpa 全部
四、c3p0 \lib\optional\c3p0
五、 log4j 整合jar slf4j-log4j12-1.7.2.jar
六、mysql驱动包 mysql-connector-java-5.1.22-bin.jar
七、二级缓存 ehcache-1.5.0.jar 、backport-util-concurrent.jar 本来要导3个,logging包在前面struts包中有了,因此无需在导入
hibernate总共:13个jar包
2.三、spring
版本:3.2.0
jar包:
核心:4个(core、beans、expression、context) + commons-logging..jar(这个jar包在前面不少地方导入过,struts二、hibernate的二级缓存、spring都须要,只须要导一份便可)
aop:aop联盟、spring aop、aspectj、spring-aspect
aop联盟:spring-framework-3.0.2.RELEASE-dependencies\org.aopalliance\com.springsource.org.aopalliance\1.0.0
spring aop和spring-aspect:在核心包中
aspectj:spring-framework-3.0.2.RELEASE-dependencies\org.aspectj\com.springsource.org.aspectj.weaver\1.6.8.RELEASE
jdbc:2个 spring-jdbc、spring-tx
web:1个 spring-web
test:1个 spring-test (整合测试)
总共:12个
2.四、整合jar
spring3 整合hibernate3,spring提供整合jar : spring-orm...jar
struts2 整合 spring3 ,struts提供整合jar:struts2-spring-plugin-2.3.15.1.jar
位置:struts-2.3.15.1\lib
总共:2个
2.五、整理jar
前面拿到总共39个,去除一个重复的,剩下总共38个。
3、配置文件
3.一、hibernate
hibernate.cfg.xml 核心配置文件
*.hbm.xml 映射文件(domain)
3.二、spring
applicationContext.xml
jdbcInfo.properties
web.xml(ContextLoaderListener)
3.三、struts2
struts.xml
web.xml(前端过滤器 StrutsPrepareAndExecuteFilter)
4、spring整合hibernate
4.一、首先要了解hibernate的配置文件,和hibernate须要什么,而后如何将其让spring来管理。
hibernate.cfg.xml
经过这两个图,能够知道,spring须要帮hibernate获取session,而获取session则先要得到sessionFactory,获取sessionFactory则须要加载配置文件。因此spring就须要提供两个东西,一个sessionFactory,一个session。spring如何作的呢?
使用:
这样一来,就能够将hibernte.cfg.xml给删除掉了。
还有一个问题,事务的处理。
简单,以前一篇文章咱们就讲解了spring如何进行事务管理的,那时候使用的是jdbc管理器,如今换一个便可,使用hibernate事务管理器
因此整合完hibernate后,spring的配置文件就成了这样
总结:其实很是简单,一开始整合确定毫无头绪,不知道从哪里下手,那么就先将一个最简单的hibernate操做对象的小demo写出来,看看hibernate须要什么,而后spring就配置什么,给什么。这样就简单明了了。
5、struts2整合spring
5.一、struts2本身建立action。而不用spring帮咱们建立
struts.xml
action中userService对象的建立就须要让spring帮咱们建立
applicationContext.xml
这样,就能够了。
5.二、spring帮咱们建立action,struts2什么也不用作了。‘
前提:须要导入struts-spring-plugin...jar
所有整合完后的applicationContext.xml
6、总结
那么到这里,手动整合ssh就结束了,其实很是简单,一步步来,从导包到整合hibernate在整合struts的步骤进行,那么就能够成功整合了,上面全部的我都没有采用接口编程,为了方便,往后注意一下这点便可。很是简单。
可是在整合hibernate时,咱们的你domain都映射文件都是本身手动编写的,实际开发中确定不须要一个个手动编写,由于是先有数据库,而后在来写你domain,因此以后会说到经过反转引擎根据数据库中的表来建立domain和映射文件。