Spring2.5、Struts2、Ibatis開發架構搭建(二)
二、向項目中加入Spring Struts iBATIS架構
2.1 準備工作
將下載的三個架構分別解壓縮。
建立一個Web Project。
2.2 向項目中加入Spring架構
將Spring解壓縮以後spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/dist目錄中的spring.jar複製到Web項目的WEB-INF/lib目錄中。
複製spring-framework-2.5.6-with-dependencies/spring-framework-2.5.6/lib/log4j中的log4j相關的jar檔案到項目中WEB-INF/lib目錄中。
開啟WEB項目中的WEB-INF目錄中的web.xml檔案,添加及結合項目實際情況配置以下內容
<!-- 以為是應用程式名稱 -->
<display-name>JI</display-name>
<!-- 以下是應用程式描述說明性文字 -->
<description>Job Integration</description>
<!-- 上下文參數,用於log4j以及spring中使用 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>ji.root</param-value>
</context-param>
<!-- 應用程式上下文參數,指定log4j日誌架構使用的配置參數檔案位置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- 應用程式上下文參數,指定spring設定檔位置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
在這裡寫Spring參數設定檔的路徑
例如 /WEB-INF/spring/applicationContext.xml
</param-value>
</context-param>
<!-- 監聽器,用於初始化log4j日誌架構的 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 監聽器,用於初始化spring架構 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.3 向項目中添加Struts2架構
開啟解壓縮以後的Struts2架構目錄,找到/struts-版本-all/struts-版本/lib目錄,複製*.jar檔案到WEB項目的WEB-INF/lib目錄中。
複製jsonplugin-0.31.jar 到項目的WEB-INF/lib目錄中。
開啟WEB項目中的WEB-INF/web.xml檔案,添加以下內容:
<!-- 過濾器,struts2使用的,用於銷毀某些不再使用的對象等-->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<!--過濾器,struts2使用的 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 以下是struts2使用的用於清除或銷毀某些對象的過濾器,要保證在struts過濾器映射之前配置這一項 -->
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- struts2用於的過濾器映射 -->
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
找到項目的來源程式目錄,一般在Eclipse開發工具中都是src目錄,添加以下幾個檔案(注意大小寫),struts.properties,struts.xml,globalMessages.properties ,其中
struts.properties檔案中的內容為:
struts.custom.i18n.resources=globalMessages
struts.objectFactory=spring
struts.objectFactory.spring.autoWire=type
struts.ui.theme=simple
struts.locale =zh_CN
struts.i18n.encoding=UTF-8
struts.configuration.xml.reload=true
struts.multipart.parser=jakarta
struts.multipart.maxSize=10000000
struts.devMode=false
globalMessages.properties檔案中的內容為:
SMSPageTitle=/u5b89/u5fbd/u7701/u8840/u6db2/u4fe1/u606f/u77ed/u4fe1/u5e73/u53f0
login.error=/u60a8/u8f93/u5165/u7684/u7528/u6237/u540d/u6216/u5bc6/u7801/u9519/u8bef/uff01
userId.required=/u60a8/u7684/u7528/u6237/u540d/u4e0d/u80fd/u4e3a/u7a7a/uff01/uff01
passward.required=/u60a8/u7684/u5bc6/u7801/u4e0d/u80fd/u4e3a/u7a7a/uff01/uff01
datebase.error=/u6570/u636e/u5e93/u64cd/u4f5c/u9519/u8bef/uff01/uff01/uff01
validCode_error=/u9a8c/u8bc1/u7801/u9519/u8bef/uff01/uff01
retistSdk.error=/u6ce8/u518cSDK/u5931/u8d25/uff01/u8bf7/u68c0/u67e5/u5e8f/u5217/u53f7/u548c/u5bc6/u7801/uff01/uff01
retistSdk.success=/u8f6f/u4ef6SDK/u6ce8/u518c/u6210/u529f/uff01/uff01/uff01
logoutSdk.success=/u60a8/u5df2/u6210/u529f/u6ce8/u9500SDK/uff01/uff01
logoutSdk.error=/u6ce8/u9500SDK/u5931/u8d25/uff0c/u68c0/u67e5/u7f51/u7edc/u8fde/u63a5/uff01/uff01/uff01
chargUp.error=/u5145/u503c/u5931/u8d25/uff0c/u8bf7/u68c0/u67e5/u5361/u53f7/u548c/u5bc6/u7801/uff01/uff01
sdkNotReg=/u7cfb/u7edfSDK/u6ca1/u6709/u6ce8/u518c/uff01/uff01/uff01/uff01
struts.messages.error.uploading=/u6587/u4ef6/u65e0/u6cd5/u6b63/u5e38/u4e0a/u4f20
struts.messages.error.file.too.large=/u6587/u4ef6/u5927/u5c0f/u8d85/u8fc7/u6700/u5927/u5141/u8bb8/u503c
struts.messages.error.content.type.not.allowed=/u6587/u4ef6/u7c7b/u578b/u4e0d/u5728/u4e0a/u4f20/u6587/u4ef6/u5141/u8bb8/u7c7b/u578b/u4e2d
最後一個檔案是struts.xml中的內容,這個檔案是struts的參數設定檔,參考配置內容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<package name="login" extends="struts-default">
<action name="login" class="edu.xw.ji.action.LoginAction"
method="login">
<result name="success">/dev_test/login.jsp</result>
</action>
</package>
<package name="ji_common" extends="json-default">
<interceptors>
<interceptor-stack name="myDefaultStack">
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myDefaultStack"></default-interceptor-ref>
<global-results>
<result name="error">/pages/errorMessage.jsp</result>
<result name="warn">/pages/warnMessage.jsp</result>
</global-results>
</package>
<include file="edu/xw/ji/action/dict/struts2_dict.xml" />
</struts>
注意上面的struts.xml設定檔中有兩個樣本package,名稱為login的package是從struts-default包繼承下來的,不能夠實現json格式的action返回,後面的ji_common是從json-default包繼承下來的,以後在項目中所有程式開發人員自己編寫的action中使用到json格式的返回結果時可以從ji_common包繼承下來。
2.4 向項目中添加iBATIS架構
找到解壓縮的iBATIS壓縮包中的ibatis-2.3.4.726/lib目錄,複製裡面的.jar檔案到項目中的WEB-INF/lib目錄中。
2.5 添加資料庫緩衝池架構
複製DBCP緩衝池架構中的commons-dbcp-x.x.x.jar檔案到項目中WEB-INF/lib目錄中去,複製DBCP架構工作時需要使用的common-pool相關的jar檔案到項目中的WEB-INF/lib目錄中去,DBCP在項目中是被配置到spring當中去使用,所以接下來的一系列工作都與spring的配置有關。