亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Struts+Spring+Hibernate的高校學生管理系統(tǒng)的設(shè)計與實現(xiàn)

        2011-05-21 00:40:58王伯槐
        電子設(shè)計工程 2011年11期
        關(guān)鍵詞:表示層高校學生組件

        張 燁,王伯槐

        (榆林學院 信息工程學院,陜西 榆林 719000)

        學生管理工作是高校管理工作的重要組成部分,是整個學校管理的核心和基礎(chǔ)。隨著高校管理體制改革的深化及數(shù)字化校園建設(shè)進程的加快,以校園網(wǎng)為基礎(chǔ)的基于B/S結(jié)構(gòu)的學生管理系統(tǒng)廣泛地應用于高校學工工作領(lǐng)域,實現(xiàn)了學生管理信息化。但是,傳統(tǒng)的開發(fā)方法難以快速開發(fā)出功能強大、系統(tǒng)可擴展性強的基于Web的應用系統(tǒng)。如何快速、高效構(gòu)建一個高內(nèi)聚、低耦合的學生管理系統(tǒng),成為關(guān)注的技術(shù)熱點。隨著Web開發(fā)技術(shù)的日趨成熟,在Web開發(fā)領(lǐng)域出現(xiàn)了一些優(yōu)秀的框架。筆者通過深入研究輕量級開源框架Struts,Spring和Hibernate各自的特點,采用目前最流行的Struts+Spring+Hibernate組合框架作為高校學生管理系統(tǒng)的解決方案。該系統(tǒng)分為Web表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和數(shù)據(jù)庫層,SSH框架合理的分層和恰當?shù)脑O(shè)計模式降低了模塊的耦合度,達到了代碼的合理分離,從而提高了系統(tǒng)的靈活性和可維護性。

        1 Struts,Spring和Hibernate框架

        1.1 Struts框架

        MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。是一種在Web項目開發(fā)中廣泛使用的設(shè)計模式。它強制性地把應用程序的輸入、處理和輸出分開,減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合。

        Struts是在Jakarta項目下開發(fā)的開放源碼軟件,是在JSP Model2的基礎(chǔ)上實現(xiàn)的一個MVC框架。在Struts框架中,模型由實現(xiàn)業(yè)務(wù)邏輯的JavaBean或EJB組件構(gòu)成,控制器由ActionServlet和Action來實現(xiàn),視圖部分是通過JSP技術(shù)實現(xiàn)的[1]。Struts的工作原理如圖1所示。

        圖1 Struts工作原理Fig.1 The work principle of Struts

        Struts 的 核 心 組 件 有 Action,ActionServlet, ActionMapping,ActionForm,ActionForward及Taglib配置文件等[2]。

        1.2 Spring框架

        Spring是一個開源框架,是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架。Spring通過控制反轉(zhuǎn)(IoC)機制、面向切面AOP編程來降低業(yè)務(wù)組件之間的耦合度,增強系統(tǒng)擴展性[3]。Spring框架由7個模塊組成,Spring框架如圖2所示。

        圖2 Spring框架圖Fig.2 The framework diagram of Spring

        Spring Core提供了Spring框架的核心功能。Bean Factory是Spring核心容器的主要組件。它通過控制反轉(zhuǎn)將應用程序的配置和依賴性規(guī)范與實際的應用程序代碼分開,負責對JavaBean的配置、管理、創(chuàng)建。

        1.3 Hibernate框架

        Hibernate是連接Java應用程序和關(guān)系數(shù)據(jù)庫的中間件,是一個開源的對象關(guān)系映射(ORM)框架,能夠建立面向?qū)ο蟮挠蚰P秃完P(guān)系數(shù)據(jù)模型之間的映射。它對JDBC API進行了封裝,負責Java對象的持久化;在分層的軟件架構(gòu)中它位于持久化層,封裝了所有數(shù)據(jù)訪問的細節(jié),使業(yè)務(wù)邏輯層可以專注于實現(xiàn)業(yè)務(wù)邏輯;Hibernate內(nèi)部封裝了通過JDBC訪問數(shù)據(jù)庫的操作,向上層應用提供了面向?qū)ο蟮臄?shù)據(jù)訪問API,使用戶不用關(guān)心數(shù)據(jù)庫的操作問題[4]。Hibernate的核心接口分別為:Session、SessionFactory、Configuration、Transaction 和Query。

        2 系統(tǒng)功能和結(jié)構(gòu)設(shè)計

        2.1 系統(tǒng)功能模塊設(shè)計

        根據(jù)高校學生管理工作的實際需求,本系統(tǒng)主要功能模塊劃分如下:用戶登錄管理、學生信息管理、綜合測評管理、評獎評優(yōu)管理、違紀處分管理、學生資助管理、助學貸款管理、勤工助學管理、心理健康管理、學工隊伍管理、信息查詢與統(tǒng)計、系統(tǒng)維護等。

        2.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計

        本文結(jié)合Struts、Spring和 Hibernate 3種框架各自的特點及Web應用分層設(shè)計思想,采用目前流行的Struts+Spring+Hibernate整合框架來開發(fā)高校學生管理系統(tǒng)。Struts,Spring和Hibemate的集成能夠揚長避短,使框架更加高效。其中Struts負責頁面顯示層的實現(xiàn),Spring負責業(yè)務(wù)邏輯層的實現(xiàn),Hibernate完成對象和關(guān)系的映射,負責數(shù)據(jù)持久層的實現(xiàn)[5]。

        基于Struts+Spring+Hibernate框架的J2EE分層架構(gòu)如圖3所示。

        圖3 SSH框架的體系結(jié)構(gòu)Fig.3 The architecture of SSH framework

        SSH框架的整合是代碼開發(fā)的基礎(chǔ)。

        Struts與Spring的整合是在Struts的Struts-config.xml配置文件中使用<plug-in>標簽配置如下代碼:

        <Plug-in className= ”org.springframework.web.struts.ContextLoaderPlugIn”>

        <set-Property ProPerty=”contextConfigLoeation”

        value=”/WEB-INF/applicationContext.xml”/></plug-in>

        Hibernate與Spring的整合需要將Hibemate原有的配置文件hibernate.cfg.xml上的配置全部轉(zhuǎn)移到Spring的applicationContext.xml上來。主要有數(shù)據(jù)庫連接的 dataSource,SessionFactoryBean以及mappingResouree都應該在Spring框架上進行配置[6]。

        3 系統(tǒng)實現(xiàn)

        學生管理系統(tǒng)由多個模塊組成,這里以系統(tǒng)的個別模塊為例說明系統(tǒng)各層的具體實現(xiàn)方法。

        3.1 Web表示層的實現(xiàn)

        表示層管理用戶的請求,對用戶的請求做出相應的響應,并向用戶顯示響應結(jié)果。Struts框架在表示層實現(xiàn)了MVC設(shè)計模式,將業(yè)務(wù)數(shù)據(jù)、頁面展示和動作處理進行分離,可以對用戶的請求進行處理,有控制器可以調(diào)用下層業(yè)務(wù)邏輯,可以對異常進行處理,以及對用戶的輸入進行驗證。Struts控制器組件主要負責接收用戶請求、更新模型,以及選擇合適的視圖組件返回給用戶,它在模型和視圖之間起著中間調(diào)度作用。主要包括:ActionServlet組件、RequestProcessor組件以及 Action組件,控制器是按Struts-config.xml文件中的配置來決定業(yè)務(wù)流的轉(zhuǎn)向的。可截取一段用戶登錄 Action的代碼,來展示Struts的控制器組件的實現(xiàn)。代碼清單如下所示。

        Public class LoginAction extends DispatchAction{

        //注入底層服務(wù)

        Private IUserService userservice;

        Private IUserRoleService userroleservice;

        Private ILogService logService;

        3.2 業(yè)務(wù)邏輯層的實現(xiàn)

        Spring框架在業(yè)務(wù)邏輯層可以處理應用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗,對事務(wù)進行管理,可以管理業(yè)務(wù)層中各個對象的依賴關(guān)系,執(zhí)行相應的業(yè)務(wù)程序來實現(xiàn)業(yè)務(wù)服務(wù)。在業(yè)務(wù)邏輯層,Spring的反轉(zhuǎn)控制機制降低了整個系統(tǒng)耦合。Spring提供的HibernateTemplate大大簡化了Hibernate的開發(fā)過程。同時利用Spring來管理Struts的Action對象,避免了在程序中直接編寫組件的依賴關(guān)系建立,提高了Action的性能。

        在處理業(yè)務(wù)邏輯層和持久化層之間的交互時,采用了面向接口編程的面向?qū)ο笏枷牒蚐pring的IOC機制,使業(yè)務(wù)處理對象中的Setter方法接收的是接口,這樣可以很松散的定義對象的實現(xiàn),然后注入。Spring配置文件如下所示。

        <!—用戶管理業(yè)務(wù)bean--><bean id=”UmUserService”>

        class= ”com.gnetis.boss.systemadmin.service.Impl.UserService”>

        <property name=”userDao” ref=”UmUserDao”>

        <property name=”userRoleDao” ref=”UserRoleDao”/>

        <property name=”logService”>

        <ref bean=”LogService”>

        </property></bean>

        3.3 數(shù)據(jù)持久層的實現(xiàn)

        持久層用來負責存儲從應用到數(shù)據(jù)庫的數(shù)據(jù),也負責數(shù)據(jù)的檢索、更新和刪除。Hibernate框架實現(xiàn)了對象/關(guān)系映射,在持久層為Java提供了面向?qū)ο蟮某志没瘷C制和查詢服務(wù)[7]。持久層的對象與數(shù)據(jù)庫的操作是通過DAO(Data Access Object/數(shù)據(jù)訪問對象)模式來實現(xiàn)的,即每個持久層對象都有自己的DAO。以用戶管理模塊為例說明Hibernate的實現(xiàn)過程。代碼片段如下所示。

        Public class UserDao extends GenericHibernateDao implements IUserDao{

        /*繼承父類所有通用方法 */

        Public UserDao{}{super<BoUmUser,class>;}

        //根據(jù)分頁原則查詢所有的用戶

        Public Page<BoUmUser> findAllUserByPage<Page page-Info>

        {String countHql};

        String queryHql;

        countHql=”select count<*> from BoUmUser”;

        queryHql=”from BoUmUser”;

        return this.listAllForPage <countHql, queryHql,pageInfo>;}

        }……

        4 結(jié)束語

        高校學生管理[8]工作業(yè)務(wù)繁多,時效性強,學生管理工作施行科學化和網(wǎng)絡(luò)化,已經(jīng)成為高校學生工作管理信息化的重要途徑。本文采用Struts+Spring+Hibernate輕量級框架技術(shù)開發(fā)高校學生管理系統(tǒng),降低了模塊間的耦合度,實現(xiàn)了業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)的分離,提高了代碼的重用度。Struts負責Web表示層的設(shè)計,能很好地把業(yè)務(wù)邏輯和表示層分離,也便于業(yè)務(wù)邏輯模塊的重用。Hibernate負責數(shù)據(jù)層,把面向?qū)ο蟮脑O(shè)計開發(fā)與關(guān)系數(shù)據(jù)庫聯(lián)系起來,優(yōu)化了共享平臺的數(shù)據(jù)層設(shè)計。Spring負責業(yè)務(wù)邏輯層,加強了中間層的設(shè)計,降低了數(shù)據(jù)訪問難度。實踐證明該系統(tǒng)具有較好的可擴展性和可維護性。

        [1]孫衛(wèi)琴.精通Struts:基于MVC的Java web設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2008.

        [2]趙洋,張麗,王恩東,等.基于 Struts,Hibernate和 Spring的J2EE 架構(gòu)研究[J].現(xiàn)代電子技術(shù),2009,289(2):107-110.ZHAO Yang ,ZHANG Li,WANG En-dong, et al.Research of J2EE based on Struts,Hibernate and Spring[J].Modern Electronics Technique,2009,289(2):107-110.

        [3]孫衛(wèi)琴.精通 Hibernate:Java對象持久技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

        [4]王君.基于Struts+Spring+Hibernate的企業(yè)級Web應用的框架研究[D].合肥:合肥工業(yè)大學,2007.

        [5]劉斌,王最.Struts,Spring,Hibernate框架在 OA開發(fā)中的應用[J].計算機技術(shù)與發(fā)展,2010,20(1):151-154.LIU Bin,WANG Zui.Application of office automation based on SSH framework [J].Computer Technology and Development,2010,20(1):151-154.

        [6]嚴海.基于Struts+Spring+Hibernate框架構(gòu)建WEB應用的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學,2010.

        [7]楊剛.基于Struts+Hibernate+Spring框架的信息管理系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:武漢理工大學,2010.

        [8]王振輝.精品課程管理平臺建設(shè)方案研究[J].現(xiàn)代電子技術(shù),2010(18):77-78,86.WANG Zhen-hui.Development scheme of management platform for high-quality courses[J].Modern Electronics Technique,2010(18):77-78,86.

        猜你喜歡
        表示層高校學生組件
        無人機智能巡檢在光伏電站組件診斷中的應用
        能源工程(2022年2期)2022-05-23 13:51:50
        高校學生黨支部建設(shè)及作用發(fā)揮探索
        新型碎邊剪刀盤組件
        重型機械(2020年2期)2020-07-24 08:16:16
        高校學生意外傷害事件應對與處理
        活力(2019年19期)2020-01-06 07:37:16
        U盾外殼組件注塑模具設(shè)計
        基于Spring的企業(yè)級Web項目架構(gòu)設(shè)計研究
        軟件(2019年6期)2019-10-08 06:27:21
        小議高校學生違紀處分制度
        學周刊(2016年23期)2016-09-08 08:57:48
        ASP.NET三層構(gòu)架解析
        基于SSH框架科研管理系統(tǒng)的設(shè)計
        關(guān)于高校學生工作的思考
        學習月刊(2015年24期)2015-07-09 03:42:00
        99久久亚洲精品无码毛片| 精品人妻一区二区三区视频| 天天躁夜夜躁狠狠是什么心态| 亚洲av无码av男人的天堂| 国产日产精品久久久久久| av福利资源在线观看| 亚洲天堂精品成人影院| 免费看美女被靠的网站| 日本久久久| 国内专区一区二区三区| 久久久精品视频网站在线观看| 国产肥熟女视频一区二区三区| 亚洲色大成网站www在线观看| 国产日韩乱码精品一区二区| av高清在线不卡直播| 成人免费一区二区三区| 极品 在线 视频 大陆 国产| 美女射精视频在线观看| 日韩精品人妻中文字幕有码| 妓院一钑片免看黄大片| 亚洲无码图| 国产高清精品一区二区| 久久无码av一区二区三区| 亚洲一区二区三区成人| 色婷婷精品国产一区二区三区| 国产精品人成在线观看免费| 久久久日韩精品一区二区三区| 亚洲爆乳大丰满无码专区| 一区二区日本免费观看| 久久精品国产亚洲av麻豆长发 | 日本免费久久高清视频| 帮老师解开蕾丝奶罩吸乳网站| 国产成人精品三级91在线影院 | 久久精品国产亚洲婷婷| 免费女女同黄毛片av网站| 国产精品视频一区二区三区不卡| 区二区欧美性插b在线视频网站| 久久久9色精品国产一区二区三区| 国产一区二区长腿丝袜高跟鞋| 午夜成人鲁丝片午夜精品| 三级国产女主播在线观看|