清楚了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和映射文件。