我們後臺管理系統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管理,內容主要包括數據庫連接信息,數據庫連接池的信息



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章