【J2EE】:Java EE應用的組件

上篇博客中,我們在文章的結尾提到了組件,這篇博客就接着討論一下JavaEE應用的組件有哪些,以及這些組件主要用了什麼技術。


首先,我們得先了解一下這裏所說的組件是什麼鬼?


百度百科給出的解釋是:組件(Component)是對數據和方法的簡單封裝。組件可以有自己的屬性和方法。屬性是組件數據的簡單訪問者。方法則是組件的一些簡單而可見的功能。使用組件可以實現拖放式編程、快速的屬性處理以及真正的面向對象的設計。


從上面的描述來看,實際上就是面向對象的思想,或者就是在描述一個類,因爲對象或者類就是由屬性和方法構成的。而我們的JavaEE應用程序就是由組件構成的,JavaEE組件是具有獨立功能的單元,它們通過相關的類和文件進行組裝,成爲應用程序,並且與其他組件交互。例如:控制器組件、EAO組件,表現層組件等等。下面我們就根據JavaEE的分層模型來說說各層組件的詳細情況。


表現層組件:


主要負責收集用戶輸入數據,或者向客戶顯示系統狀態。最常用的表現層技術是JSP,但JSP並不是唯一的表現層技術。表現層還可以由Velocity、FreeMaker和Tapestry等技術完成,或者使用普通的應用程序充當表現層組件,甚至可以是小型智能設備,比如我們手機、IPad等等。


控制器組件:


對於JavaEE的MVC框架而言,框架提供了一個前端核心控制器,而核心控制器負責攔截用戶請求,並將請求轉發給用戶實現的控制器組件。而這些用戶實現的控制器則負責處理調用業務邏輯方法,處理用戶請求。


業務邏輯組件:


這些組件是系統的核心組件,實現系統的業務邏輯。通常,一個業務邏輯方法對應一次用戶操作。一個業務邏輯方法應該是一個整體的,因此我們要求對業務邏輯方法增加事務性。業務邏輯方法僅僅負責實現業務邏輯,不應該進行數據庫訪問。因此,業務邏輯組件中不應該出現原始的Hibernate。JDBC等API。


爲什麼要將業務邏輯實現與持久層的技術分離呢?一個很重要的原因是:當系統需要在不同的持久層技術之間切換時,系統的業務邏輯組件無須做任何改變。


DAO組件:


Data Access Object,也被稱爲數據訪問對象。這個類型的對象比較缺乏變化,每個DAO組件都提供Domain Object對象基本的創建、查詢、更新和刪除等操作,這些操作對應於數據表的CRUD等原子操作。當然,如果採用不同的持久層訪問技術,DAO組件的實現會完全不同。爲了業務邏輯組件的實現與DAO組件的實現分離,我們爲每個DAO組件都提供接口,業務邏輯組件面向DAO接口編程,從而提供更好的解耦。


領域對象組件


領域對象(Domain Object)抽象了系統的對象模型。通常而言,這些領域對象的狀態都必須保存在數據庫裏面。因此,每個領域對象通常對應一個或多個數據表,領域對象通常需要提供對數據記錄的訪問方式。


小結一下;


最後放上一張圖,幫助大家更好理解JavaEE應用架構和各種技術之間的關係。
 

其實很多人都會有這樣的疑問:我可以使用JSP完成整個系統,爲何還有這麼費勁的將系統分這麼層?每層使用不同的技術框架?有必要麼?


我想說的是,對於個人學習、娛樂性的個人站點而言,你怎麼做都無所謂,但是對於大型的信息化系統來說,你就要好好考慮考慮了,維護性、擴展性、複用性等等都是問題,好好體會一下吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章