1. 程式人生 > >我們後臺管理系統SSH框架解析

我們後臺管理系統SSH框架解析

SSH框架:

spring

spring的配置檔案位置在web.xml中,有個contextConfigLocation的引數,配置spring相關檔案的位置。

按功能一般spring會配置分成下面幾個資原始檔

<import resource="app-action.xml" />
<import resource="app-service.xml" />
<import resource="app-dao.xml" />
<import resource="app-resource.xml" />
<import resource="app-transactionManager.xml" />

action配置struts的Action

service配置spring的service裡面配置好註解方式使用,在action中就只需要用@Reservice就可以獲取到相關的service了

dao配置了實現hibernate持久層的實現類,由於hibernate的方法都封裝的很好,故只寫了一個通用的實現類commonDao

resource檔案配置類的對映檔案,

transactionManager裡面是配置spring管理hibernate的內容,特別注意事務控制:tx:advice裡面的內容,只有這裡面配置的propagation的值為REQUIRED才會提交事務,即以這些開頭的才會提交事務,不然新增、修改等操作不會寫入到資料庫中,read-only的操作不會對資料庫產生寫入鎖,可提高併發能力。

                        <tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="find*" read-only="true" />
<tx:method name="get*" read-only="true" />
<tx:method name="*" />

struts

在struts檔案中,主要內容包括攔截器、返回型別定義

攔截器定義在packge節點中

<interceptors>
<!-- 註冊攔截器 -->
<interceptor name="systemInterceptor" class="systemInterceptor"></interceptor>


<interceptor-stack name="loginStack">
<!-- 暫不啟動攔截器 -->
<interceptor-ref name="systemInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
        </interceptors>

name為systemInterceptor的實現類在上面提到的app-action檔案中配置

action返回result配置,使用萬用字元配置

<action name="*_*" class="{1}" method="{2}">

返回結果型別有很多,對應的type和一些基本屬性不要寫錯,包括

jsp

json,可定義json返回值的root名稱,我們專案中時dataMap

redirect,重定向

file,返回流資料型別,動態生成檔案返回給使用者的時候用得著,我們用過的案例有下載邀請碼,是典型的匯出資料到Excel。

hibernate

在hibernate.cfg.xml中,部分功能由spring管理,內容主要包括資料庫連線資訊,資料庫連線池的資訊