【J2EE】:Java EE應用的分層模型
時至今日,我們所談論的JavaEE應用,往往已經超出了Sun所提出的經典JavaEE應用規範,而是一種更廣泛的開發規範。
經典JavaEE應用往往以EJB(企業級Java Bean)為核心,以應用伺服器為執行環境,所以通常開發和執行的成本都比較高。
而現在市場上比較流行的輕量級Java EE應用具備了JavaEE規範的種種特徵,例如物件導向建模的思想、優秀的應用分層及良好的可擴充套件性、可維護性。輕量級JavaEE應用保留了經典Java應用的架構,但是開發和執行成本大大降低了。
無論是經典的JavaEE架構,還是輕量級JavaEE架構,其本質的思想都是一樣的,那就是我們都聽說過的分層思想,兩種架構模式大致上都可以分為如下幾層。
DomainObject層:
此層是由一系列的POJO(Plain OldJava Object,即普通的、傳統的Java物件)組成,這些物件是該系統的Domain Object,往往包含了各自所需實現的業務邏輯方法。
DAO(Data AccessObject,資料訪問物件)層:
此層由一系列的DAO元件組成,這些DAO實現了對資料庫的建立、查詢、更新和刪除(CRUD)等原子操作。
在經典JavaEE應用中,DAO層也被改稱為EAO層,EAO層元件的作用與DAO層元件的作用基本相似。只是EAO層主要完成對實體(Entity)的CRUD操作,因此簡稱為EAO層。
業務邏輯層:
此層由一系列的業務邏輯物件組成,這些業務邏輯物件實現了系統所需要的業務邏輯方法。這些業務邏輯方法可能僅僅用於暴露Domain Object物件所實現的業務邏輯方法,也可能是依賴DAO元件實現的業務邏輯方法。
控制器層:
此層是由一系列控制器組成,這些控制器用於攔截使用者的請求,並且呼叫業務邏輯元件的業務邏輯方法,處理使用者請求,並且根據處理結果轉發到不同的表現層元件。
表現層:
此層由一系列的JSP頁面、Velocity頁面、PDF文件檢視元件組成,負責收集使用者請求,並顯示處理結果。
大致上,輕量級JavaEE應用的架構如下圖所示:
各層的JavaEE元件之間以鬆耦合的方式耦合在一起,各元件並不以硬編碼的方式耦合,這種方式是為了應對以後的擴充套件需求。從上向下,上面元件的實現依賴於下面元件的功能;自下而上,下面元件支援上面元件的實現。
至於以EJB/JPA為核心的經典JavaEE應用的結構,和上圖中的結構大致上是相似的,只是它的DAO層元件和業務邏輯元件兩者都是由EJB元件來充當。其架構圖大致如下:
小結一下:
計算機程式設計的初期階段,我們的程式並沒有分層這一說,都是混沌不堪的,這樣的系統維護起來相當的費勁,而且程式碼閱讀起來也是極其不爽的。技術發展到了今天,無論是多大規模的系統,分層的思想已經深入人心,因為我們的軟體系統在使用過程中,不會一成不變,總會有新的需求或者改動,如此一來,當初在設計系統架構的時候,採用分層模型去構建自己的系統就是一個不二之選了。那麼應用分層之後,每個層級採用什麼技術或者元件來支撐呢?請聽下回分解。
相關文章
- 【J2EE】:Java EE應用的元件Java元件
- j2ee的分層模型問題(第一次發貼!!)模型
- J2EE分散式應用分散式
- 便攜的J2EE應用 (轉)
- j2ee應用調優的利器-JProfiler
- 開發J2EE應用的要領
- J2EE中間層遷移
- The Seam: J2EE 5.0 應用開發框架框架
- web伺服器分層架構的資原始檔對映安全以及在J2EE應用中的利用與危害Web伺服器架構
- 當前流行的J2EE WEB應用架構分析Web應用架構
- 最佳化J2EE + MySQL 應用系統的效能MySql
- 構建J2EE應用程式的任務列表 (轉)
- Java/J2EE中文問題Java
- J2EE平臺中間層的效能問題
- 應用OSCache提升J2EE系統執行效能
- J2EE vs .NET 應用開發走向何處?
- Java EE/J2EE物件導向程式設計之道Java物件程式設計
- Java Web應用的程式碼分層最佳實踐。JavaWeb
- java J2EE學習入門Java
- JAVA\J2EE人員招聘-北京Java
- 構建高效能J2EE應用的五種核心策略
- 提高J2EE層與資料庫層互動操作能力的優勢資料庫
- solaris上開發J2EE應用中文問題的解決 (轉)
- 軟體測試技術在J2EE專案中的應用
- 【J2EE】JDBCJDBC
- j2EE的學習
- 用j2ee開發業務系統的困境
- 上海公司招聘java/j2ee 工程師Java工程師
- 【菜鳥學Java】2:初識J2EEJava
- 為 Java EE 應用提供的 9 種 Docker 方法JavaDocker
- TCP/IP五層模型-應用層-DNS協議TCP模型DNS協議
- 我所理解的J2EE
- j2ee開發的困境
- J2EE 核心模式模式
- 簡析J2EE應用程式資料庫類設計模式 (轉)資料庫設計模式
- 有感於c# vs java ,.net vs j2eeC#Java
- Java EE 6之企業應用開發Java
- '用JBuilder Ent 7開發一個簡單J2EE 應用'一點問題UI