<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java海闊天空

    編程是我的生活,但生活不僅僅是編程。

    基于SSH2框架構建JavaEE應用程序(1)

    一、前言

    雖然Struts2+Spring3+Hibernate3三大框架上市已久,但廉頗未老,目前仍然是眾多JavaEE應用程序的首選技術。本文將向您詳細闡述SSH2應用程序的構架、思想、技術與技巧,打通JavaEE的任督二脈,行文力求通暢簡潔,希望能讓讀者豁然開朗,快速掌握JavaEE應用程序的開發流程與關鍵技術。


    本文并非面向無Java基礎的讀者,您需要掌握一定的編程思想、Java技術和Struts2、Spring3與Hibernate3等框架技術,并了解Oracle等DBMS。


    二、JavaEE體系架構

    JavaEE體系架構采用傳統的MVC設計模式,分為Model、View、Controller三層,其中:Model即模型層,定義數據模型和業務邏輯。為了將數據訪問與業務邏輯分離,提高業務精度,降低代碼之間的耦合,模型層又細分為DAO層與業務層,DAO全稱為Data Access Object(數據訪問對象),將數據庫訪問代碼封閉起來,Hibernate API也在此封裝,不再出現在其他層或向其他層暴露;業務層是整個系統最核心也最具價值的一層,該層封裝應用程序的業務邏輯,處理數據,關注客戶需求,在業務處理過程中會訪問原始數據或產生新數據,或者需要持久化數據,DAO層提供的DAO類能很好地幫助業務層完成數據處理,業務層本身則側重于對客戶需求的理解和業務規則的適應,自然也包括大部分的計算,總體說來,DAO不處理業務邏輯,只為業務層提供輔助,獲取原始數據或持久化數據等操作。View即視圖層,為最終用戶提供一個友好的交互界面,用戶可以查看請求結果,也可以通過表單等交互手段實現數據錄入。Controller層即控制器,控制器是Model與View的橋梁,將二者很好的銜接,通過View接收用戶數據,Controller將數據傳輸給Model,Model對數據進行處理;或者Model讀取數據后,Controller將數據傳遞給View,View向用戶展示數據。一來一往,Controller成了Model與View之間的快樂使者。


    關于MVC更多的解釋請參考百度百科鏈接(http://baike.baidu.com/view/31.htm),下圖展示了MVC的結構:



     

    從調用關系上看,左為高層,右為低層,下為高層,上為低層,高層可以調用低層,但低層不能調用高層,層與層之間的調用是單向的。


    從數據傳輸上看,數據可以從視圖層傳輸到DAO進而保存到數據庫,也可以從數據庫中讀取數據進行處理或者顯示,所以,數據的傳輸是雙向的。


    從技術實現上看,視圖層使用HTML/JSP組件實現,控制器使用Servlet或Action組件實現,模型層使用JavaBean組件或EJB技術實現。


    Hibernate封裝在DAO層,負責數據訪問操作;Struts充當控制器角色,對用戶數據進行合法性檢驗和類型轉換,為視圖層提供標簽簡化頁面顯示,提供國際化支持等等;Spring是應用程序的管家,DAO、Service(業務)、Action等對象由Spring創建并維護各對象之間關系,同時提供聲明式事務管理,簡化事務編程。


    三、如何理解業務?

    軟件工程中的業務與日常生活中的業務不同,平常的業務偏指銷售,指需要處理的事務。這里的業務涉及一個以上組織,按某一共同的目標、通過信息交換實現的一系列過程,其中每個過程都有明確的目的,并延續一段時間。將范圍更局限一點,業務是指為完成某個事務而進行的一系列活動,需要對象的參與并按照一定的規則觸發一系列行為。


    業務包含三大元素:對象、行為和業務規則。


    對象是主體,是行為的觸發者,這里的對象可能是用戶、訂單、產品或DAO對象,也可能是外部系統,比如支付系統。一個業務的完成,可能需要一個對象參與,也可能是多個對象參與,這取決于業務本身。行為是對象的動作,多個行為按照一定的順序執行,構成業務完整的執行能力。業務規則是對業務的一種約束,每一個行為所產生的結果必須對規則負責,規則監視對象、行為以及業務執行的結果,保證業務的正確性和準確性。


    我們以取款業務為例,來分析本業務中涉及的對象、行為和規則。


    取款業務描述:輸入用戶賬號(銀行刷卡完成),提醒用戶輸入密碼,銀行系統核對密碼是否正確,如果正確,用戶輸入取款金額,系統更改賬戶金額并記錄取款信息,打印票據,取款完成。


    這是一個司空見慣的業務,從這個業務中,我們提取出如下的元素信息:

    對象:賬號,交易,打印機;

    行為:核對卡號和密碼,更改賬戶余額,記錄取款交易信息,打印票據;

    規則:一次最多只能取2000元,一天最多只能取5次,取款金額大于50000需要預約;

     

    根據以上的分析,我們很容易轉變成源代碼。很多時候,我們遇到的業務比這個要復雜得多,項目的規模也很大,這就要求我們具備全局觀,控制全場,運籌帷幄,仔細分析,輔助建模,達到最理想的效果。


    ——作者:李贊紅 (lifenote@21cn.com),轉載請保留版權!

    posted on 2011-02-18 13:26 李贊紅 閱讀(3839) 評論(4)  編輯  收藏

    評論

    # re: 基于SSH2框架構建JavaEE應用程序(1) 2011-02-21 11:11 --

    好久沒有看到你的文章了。  回復  更多評論   

    # re: 基于SSH2框架構建JavaEE應用程序(1) 2011-02-21 11:40 李贊紅

    @--
    謝謝關注!  回復  更多評論   

    # re: 基于SSH2框架構建JavaEE應用程序(1) 2011-02-26 21:16 zanewin

    此文能夠打通任督二脈?  回復  更多評論   

    # re: 基于SSH2框架構建JavaEE應用程序(1) 2011-02-26 22:23 李贊紅

    @zanewin
    有什么建議和意見歡迎一起探討,謝謝!  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2011年2月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272812345
    6789101112

    統計

    常用鏈接

    留言簿(12)

    隨筆檔案(28)

    相冊

    技術友情博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费的一级黄色片| 国产成人免费在线| avtt亚洲天堂| 激情婷婷成人亚洲综合| 在线观看免费大黄网站| 中文字幕在线观看亚洲视频| 国产又大又粗又长免费视频| 亚洲免费电影网站| 性做久久久久久免费观看| 67194在线午夜亚洲| 最新欧洲大片免费在线| 亚洲中文无码卡通动漫野外| 日本免费观看网站| 窝窝影视午夜看片免费| 亚洲午夜久久久久久噜噜噜| 中文精品人人永久免费| 亚洲精品线在线观看| 亚洲成人免费在线观看| 亚洲高清视频在线| 免费人成年激情视频在线观看| 黄 色一级 成 人网站免费| 亚洲精品无码MV在线观看| 最好看的中文字幕2019免费| 亚洲不卡在线观看| 国产午夜鲁丝片AV无码免费| a毛片成人免费全部播放| 亚洲国产精品国自产电影| 免费阿v网站在线观看g| 国产成人 亚洲欧洲| 亚洲中文字幕无码日韩| 日韩精品无码免费一区二区三区 | 两性色午夜视频免费网| 91亚洲国产在人线播放午夜| 黄色片在线免费观看| 成人a毛片视频免费看| 亚洲AV无码乱码在线观看富二代| 免费H网站在线观看的| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 国产成人精品亚洲日本在线| 国产在线不卡免费播放| 国产色爽免费无码视频|