Java应用分层(阿里巴巴Java开发手册)
生活随笔
收集整理的這篇文章主要介紹了
Java应用分层(阿里巴巴Java开发手册)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
阿里巴巴Java開發手冊 - 應用分層
應用各層模型
上圖中默認上層依賴于下層,箭頭關系表示可直接依賴,(如:開放接口層可以依賴于 Web 層,也可以直接依賴于 Service 層,依此類推)
- 開放接口層:可直接封裝 Service 方法暴露成 RPC 接口;通過 Web 封裝成 http 接口;進行
網關安全控制、流量控制等。 - 終端顯示層:各個端的模板渲染并執行顯示的層。當前主要是 velocity 渲染,JS 渲染,
JSP 渲染,移動端展示等。 - Web 層:主要是對訪問控制進行轉發,各類基本參數校驗,或者不復用的業務簡單處理等。
- Service 層:相對具體的業務邏輯服務層。
- Manager 層:通用業務處理層,它有如下特征:
1) 對第三方平臺封裝的層,預處理返回結果及轉化異常信息;
2) 對 Service 層通用能力的下沉,如緩存方案、中間件通用處理;
3) 與 DAO 層交互,對多個 DAO 的組合復用。 - DAO 層:數據訪問層,與底層 MySQL、Oracle、Hbase 等進行數據交互。
- 外部接口或第三方平臺:包括其它部門 RPC 開放接口,基礎平臺,其它公司的 HTTP 接口。
分層異常處理規約
在 DAO 層,產生的異常類型有很多,無法用細粒度的異常進行 catch,使用catch(Exception e)方式,并 throw new DAOException(e),不需要打印日志,因為日志在 Manager/Service 層一定需要捕獲并打印到日志文件中去,如果同臺服務器再打日志,浪費性能和存儲。在 Service 層出現異常時,必須記錄出錯日志到磁盤,盡可能帶上參數信息,相當于保護案發現場。如果 Manager 層與 Service 同機部署,日志方式與 DAO層處理一致,如果是單獨部署,則采用與 Service 一致的處理方式。Web 層絕不應該繼續往上拋異常,因為已經處于頂層,如果意識到這個異常將導致頁面無法正常渲染,那么就應該直接跳轉到友好錯誤頁面,加上用戶容易理解的錯誤提示信息。開放接口層要將異常處理成錯誤碼和錯誤信息方式返回。
分層領域模型規約
- DO(Data Object):與數據庫表結構一一對應,通過 DAO 層向上傳輸數據源對象。
- DTO(Data Transfer Object):數據傳輸對象,Service 或 Manager 向外傳輸的對象。
- BO(Business Object):業務對象。由 Service 層輸出的封裝業務邏輯的對象。
- AO(Application Object):應用對象。在 Web 層與 Service 層之間抽象的復用對象模型,
極為貼近展示層,復用度不高。 - VO(View Object):顯示層對象,通常是 Web 向模板渲染引擎層傳輸的對象。
- Query:數據查詢對象,各層接收上層的查詢請求。注意超過 2 個參數的查詢封裝,禁止使用 Map 類來傳輸。
《阿里巴巴Java開發手冊(詳盡版)1.4.0》下載地址
總結
以上是生活随笔為你收集整理的Java应用分层(阿里巴巴Java开发手册)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB----数据拟合
- 下一篇: 阿里巴巴Java开发手册(详尽PDF版)