首先,在整合框架之前,我們需要知道Spring框架在普通Java project和Web project中是略有不同的.
這個不同地方就在於創建IOC容器實例的方式不同,在普通java工程中,可以在main方法中直接創建,可是web工程就不一樣了,在Web項目工程中應該在服務器加載時就創建IOC容器.也就是說,我們需要web容器能自動加載applicationcontext.xml並初始化.最常用的一種方式,就是在web.xml中添加ContextLoaderListener監聽器.
先講一下,在WEB環境下,使用Spring的注意事項:
-
- 注意一定要有這兩個jar包,spring-web-4.2.5.RELEASE.jar和spring-webmvc-4.2.5.RELEASE.jar
- Spring的配置文件,和在普通java project的配置文件相同.
- 需要在web.xml中加入以下代碼:
<!-- 配置Spring配置文件的名稱和位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
<!--<param-value>/WEB-INF/applicationContext.xml</param-value>-->
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
下面介紹ssh整合和步驟,這里只做簡單介紹,詳細的步驟,之前的博文中,已經做了詳細的介紹.
首先我們選擇先加入Spring,因為Spring需要管理另外兩個框架.
- 加入Spring
-
- 加入Spring的jar包
- 配置web.xml文件(代碼見上面)
- 配置applicationContext.xml
- 加入hibernate
-
- 加入hibernate的jar包
- 配置hibernate.cfg.xml文件(也可以省略這個配置文件,這里選擇保留)
- 建立持久化類及對應hbm.xml文件
- 和spring進行整合
(1) 加入c3p0和mysql的驅動(jar包),這里選擇使用mysql數據庫和c3p0數據庫池
在spring中配置,數據源,sessionFactory,聲明式事務.
(2) 啟動項目,檢查自動生成的表結構
- 加入struts2(注意額外需要一個struts2-spring-plugin-2.3.16.1.jar,若有重復的jar包,javasist.jar,則刪除版本較低的那個jar包)
-
- 導入struts2的jar包
- web.xml中配置struts的filter
- 創建struts2的配置文件struts.xml
注意:
在applicationContext.xml中配置Action的bean時,要將scrope設置為prototype,即每次都創建一個新的實例.
在struts.xml中配置Action的class需要指向IOC容器中該Bean的id(以前class的值是該bean的全類名)