• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于S2SHA集成框架構建教師信息管理系統(tǒng)

    2010-04-03 00:59:22趙峰
    中國新技術新產(chǎn)品 2010年14期
    關鍵詞:實例容器組件

    趙峰

    (哈爾濱理工大學,黑龍江 哈爾濱150080)

    引言

    軟件架構是一系列相關的抽象模式,用于指導大型軟件系統(tǒng)各個方面的設計。Java Web軟件架構是指基于Java EE技術構建的軟件架構,根據(jù)Java Web的分層設計可以選擇使用不同的軟件框架(Framework)進行實現(xiàn)。正因為有著如此豐富的框架和其它的輔助技術,使得我們在開發(fā)Java Web應用的時候,就要根據(jù)具體的業(yè)務需求來確定使用哪個框架哪種技術或哪幾種框架和技術進行集成,以使得我們開發(fā)、部署、運行和維護Java Web應用的成本降至最低。本文探討的就是如何根據(jù)具體的業(yè)務需求集成現(xiàn)有框架和技術,快速而有效地搭建應用系統(tǒng)。

    1 Java Web框架技術

    1.1 Struts2

    Apache Struts 2是一個優(yōu)雅的,用于創(chuàng)建企業(yè)級的Java Web應用程序的可擴展框架。該框架旨在簡化整個開發(fā)周期,涵蓋應用的開發(fā),部署,以及維護的全過程。Struts2的核心包括FilterDispatcher、攔截器和Action以及展現(xiàn)用戶界面的Template和Tag,囊括了MVC模型的全部組成。

    1.2 Spring是一個開源框架,它是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構,分層架構允許用戶選擇使用哪一個組件。這也是它與Struts、Hibernate等其他框架不同的地方。Spring框架的分層架構,由7個定義良好的模塊組成Spring模塊構建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理Bean的方式。

    1.3 Hibernate

    Hibernate是一個面向Java環(huán)境的對象/關系數(shù)據(jù)庫映射工具,用來把對象模型表示的對象映射到基于SQL的關系模型數(shù)據(jù)結構中去。Hibernate不僅僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用SQL和JDBC處理數(shù)據(jù)的時問。

    1.4 Ajax

    Ajax是基于標準Web技術創(chuàng)建的、能夠以更少的響應時間帶來豐富的用戶體驗的一類Web應用程序所使用的技術的集合。

    DWR是實現(xiàn)Ajax技術的一個簡單選擇。DWR工作原理是通過動態(tài)把Java類生成為JavaScript,使用戶感覺調用發(fā)生在瀏覽器端,但實際代碼調用發(fā)生在服務器端,DWR負責數(shù)據(jù)的傳送和轉換。其優(yōu)點在于不需要任何瀏覽器插件就能運行在網(wǎng)頁上。

    圖1 S2SHA框架總體設計

    2 S2SHA的集成

    基于Struts2、Spring、Hibernate和Ajax集成的S2SHA框架總體設計如圖1所示。

    其中,Web表現(xiàn)層使用Struts2的控制器FilterDispatcher負責管理用戶的請求和顯示用戶數(shù)據(jù),頁面技術使用JSP+Ajax。JSP中包含傳統(tǒng)的頁面格式控制CSS文件。為了國際化字符信息,需要配置相應的.properties文件并在struts.xml文件中定義相應的控制器。

    業(yè)務邏輯層使用Spring作為業(yè)務邏輯框架,通過讀取配置文件,Spring IoC容器自動生成和管理Bean實例,Spring還提供了事務管理,Action類實例的管理,基于Spring AOP的日志和權限管理等。

    數(shù)據(jù)持久層采用Hibernate框架,提供從數(shù)據(jù)庫表到POJO對象的映射,屏蔽所有的數(shù)據(jù)庫操作。建立相應的DAO類,DAO類的實例由Spring容器管理。

    總之,讓Strust2負責表現(xiàn)處理,讓Spring負責裝配和解耦復雜的業(yè)務邏輯處理對象,讓Hibernate負責處理O/R映射和持久化,讓Ajax來改進用戶體驗。

    2.1 Struts2和Spring的集成

    Struts2與Spring集成主要是利用Spring強大的容器功能,Struts2所需要的一切組件和實例都由Spring的IoC容器負責創(chuàng)建和管理其生命周期。這樣就解放了控制器,實現(xiàn)了控制器和業(yè)務邏輯組件的高層次解耦,控制器只是業(yè)務邏輯組件的使用者,只需向Spring容器請求既可,Spring容器會自動地將控制器需要的業(yè)務邏輯組件進行組裝。Struts2和Spring集成的步驟如下:

    ①在web.xml中注冊名為contextConfigLocation的context-param,值為/WEB-INF目錄下的applicationContext.xml文件;注冊listener:org.springframework.web.context.ContextLoaderListener和org.apache.struts2.dispatcher.Filter-Dispatcher。

    ②在struts.xml中注冊類似于name="honorlist"class="honorList"method="list"的action,其中,'class="honorList"'定義的是偽Action名。

    ③在applicationContext.xml中注冊Bean:

    其 中,'bean name="honorList"'是對應struts.xml的偽Action名,后面的class是真正的Action類名。第二個bean是前邊Action組件所需要的業(yè)務邏輯組件,'autowire="byName"'給出了Spring的自動裝配方式。

    2.2 Spring與Hibernate的集成

    Spring為集成Hibernate,提供了3個工具類:HibernateDaoSupport、HibernateTemplate和HibernateCallback。同時,Spring負責管理Hibernate的SessionFactory bean和眾多DAO Bean。集成步驟如下:

    ①在applicationContext.xml中定義數(shù)據(jù)源,使用C3P0:

    class="com.mchange.v2.c3p0.ComboPooledData-

    Source"

    destroy-method="close">

    ②定義SessionFactory

    class="org.springframework.orm.hibernate3.Lo

    calSessionFactoryBean">

    org.hibernate.di

    alect.MySQLDialect

    ③配置事務管理

    class="org.springframework.orm.hibernate3.Hi

    bernateTransactionManager">

    然后在每個DAO類中加上@Transactional注解。

    2.3 Ajax的集成

    遵循由Spring管理一切bean的原則,DWR所使用的Java Bean也交由Spring容器統(tǒng)一管理,具體步驟如下:

    ①在web.xml中注冊DWR的servlet,其class是uk.ltd.getahead.dwr.DWRServlet。

    ②在dwr.xml中定義JavaScript類到服務器端的映射:

    其中creator="spring"表示由Spring容器管理服務器端Suggest實例;value="suggest"表示Spring管理的Bean名稱。

    ③在applicationContext.xml中定義"suggest"Bean:

    ④在視圖頁面中引入

    其中,'zf50'是項目的絕對路徑,'suggest.js'是自定義的函數(shù)文件,包含對Suggest對象的調用。

    3 教師信息管理系統(tǒng)的設計

    系統(tǒng)的業(yè)務結構如圖2所示

    普通用戶和信息審核員對信息進行相互認證的活動圖如圖3,4所示:

    4 教師信息管理系統(tǒng)在S2SHA集成框架下的實現(xiàn)

    在表現(xiàn)層使用Struts2來實現(xiàn)MVC模式,輔以基于DWR框架的Ajax技術豐富用戶界面。Struts2使用web.xml中定義的FilterDispatcher攔截到表現(xiàn)層提交的請求,通過讀取struts.xml文件查找對應的Action,找到其對應的Action類,向Spring請求其實例,調用Action實例中相應的validate方法,然后調用Spring注入的相應Service實例的業(yè)務方法,Service實例再次調用Spring注入的DAO實例,逐級返回需要傳遞給表現(xiàn)層的值,然后根據(jù)邏輯視圖名進行跳轉,返回到表現(xiàn)層,展現(xiàn)響應。

    系統(tǒng)運行效果如圖5所示。

    5 總結

    隨著越來越多的框架技術應用在Java EE企業(yè)級軟件開發(fā)當中,如何選取合適的框架和相關技術進行集成,是快速、有效、低成本的構建Java EE應用所面臨的問題。文本通過分析研究Java EE軟件架構的的發(fā)展變化和各種流行框架技術的原理和工作過程,提出一個集成Struts2、Spring和Hibernate并加入Ajax交互技術的快速開發(fā)WEB應用的軟件架構S2SHA模型。通過集成各個框架技術的優(yōu)點來到達以最小代價開發(fā)最優(yōu)軟件系統(tǒng)的目標。最后通過運用本文研究的S2SHA模型來實際開發(fā)一個應用系統(tǒng),驗證這種集成技術是有效的,可以滿足快速開發(fā)WEB應用的需要,并能夠實現(xiàn)系統(tǒng)結構間的充分解耦,具有很好的可擴展和可移植性。

    [1]DWR-Easy Ajax for JAVA[EB/OL].http://directwebremoting.org/dwr/index.html

    [2]Spring Projects[EB/OL].http://www.springsource.org/

    [3]The Apache Struts Project[EB/OL].http://struts.apache.org

    [4]JBoss Hibernate[EB/OL].http://www.jboss.com/products/hibernate.

    猜你喜歡
    實例容器組件
    Different Containers不同的容器
    無人機智能巡檢在光伏電站組件診斷中的應用
    能源工程(2022年2期)2022-05-23 13:51:50
    新型碎邊剪刀盤組件
    重型機械(2020年2期)2020-07-24 08:16:16
    U盾外殼組件注塑模具設計
    難以置信的事情
    取米
    風起新一代光伏組件膜層:SSG納米自清潔膜層
    太陽能(2015年11期)2015-04-10 12:53:04
    完形填空Ⅱ
    完形填空Ⅰ
    涟源市| 马公市| 敦化市| 墨竹工卡县| 清苑县| 广南县| 柘荣县| 和硕县| 临泉县| 类乌齐县| 乌兰察布市| 运城市| 上栗县| 凯里市| 洮南市| 靖远县| 巴林左旗| 平潭县| 平乐县| 邻水| 屯昌县| 榆林市| 台湾省| 万盛区| 鹤峰县| 湟源县| 阿鲁科尔沁旗| 上饶市| 津南区| 西盟| 北安市| 海丰县| 鹤岗市| 嫩江县| 涞水县| 万荣县| 江阴市| 特克斯县| 彝良县| 隆子县| 元江|