精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java Web應用的代碼分層最佳實踐

開發 開發工具 后端
代碼分層,對于任何一個Java Web開發來說應該都不陌生。一個好的層次劃分不僅可以能使代碼結構更加清楚,還可以使項目分工更加明確,可讀性大大提升,更加有利于后期的維護和升級。

代碼分層,對于任何一個Java Web開發來說應該都不陌生。一個好的層次劃分不僅可以能使代碼結構更加清楚,還可以使項目分工更加明確,可讀性大大提升,更加有利于后期的維護和升級。

從另外一個角度來看,好的代碼分層架構,應該是可以很好的匹配上單一職責原則的。這樣就可以降低層與層之間的依賴,還能***程度的復用各層的邏輯。本文就來介紹下Java Web項目的代碼到底應該如何分層。

[[228893]]

三層架構

在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分別為:數據訪問層、業務邏輯層(又或稱為領域層)、表示層。這也是Java Web中重要的三層架構中的三個層次。區分層次的目的即為了“高內聚低耦合”的思想。

所謂三層體系結構,是在客戶端與數據庫之間加入了一個“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即把這三個層放置到一臺機器上。

數據訪問層

主要是對非原始數據(數據庫或者文本文件等存放數據的形式)的操作層,而不是指原始數據,也就是說,是對數據庫的操作,而不是數據,具體為業務邏輯層或表示層提供數據服務。

業務邏輯層

主要是針對具體的問題的操作,也可以理解成對數據層的操作,對數據業務邏輯處理,如果說數據層是積木,那邏輯層就是對這些積木的搭建。

界面層

主要表示WEB方式。如果邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務。

三層架構與MVC的區別

MVC(模型Model-視圖View-控制器Controller)是一種架構模式,可以用它來創建在域對象和UI表示層對象之間的區分。

同樣是架構級別的,相同的地方在于他們都有一個表現層,但是他們不同的地方在于其他的兩個層。

在三層架構中沒有定義Controller的概念。這是最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是采用三層架構或MVC搭建程序最主要的區別。

分層的***實踐

隨著網站的用戶量的不斷提升,系統架構也在不斷的調整。有時候,隨著業務越來越復雜,有時候三層架構好像不夠用了。比如,我們的應用除了要給用戶提供頁面訪問以外,還需要提供一些開放接口,供外部系統調用。這個接口既不屬于界面層,也不應該屬于業務邏輯層,因為他還可能包含一些和業務邏輯無關的處理,如權限控制、流量控制等。

還有,隨著微服務的盛行,我們應用中可能要依賴很多外部接口或第三方平臺。這部分代碼放下業務邏輯層和數據訪問層也都不合適。

所以,漸漸的,在三層架構的基礎上,系統架構的分層變得更加復雜了。也正是因為復雜,就非??简灱軜嬙O計能力,因為層次劃分的不好,很可能會影響后面的開發,給代碼維護帶來很大的困難。

下圖,是阿里巴巴(參考《阿里巴巴Java開發手冊》)提倡的應用分層結構:

開放接口層

可直接封裝 Service 方法暴露成 RPC 接口;通過 Web 封裝成 http 接口;進行網關安全控制、流量控制等。

終端顯示層

各個端的模板渲染并執行顯示的層。當前主要是 velocity 渲染,JS 渲染,JSP 渲染,移動端展示等。

Web 層

主要是對訪問控制進行轉發,各類基本參數校驗,或者不復用的業務簡單處理等。

Service 層

相對具體的業務邏輯服務層。

Manager 層

通用業務處理層,它有如下特征: 1) 對第三方平臺封裝的層,預處理返回結果及轉化異常信息; 2) 對 Service 層通用能力的下沉,如緩存方案、中間件通用處理; 3) 與 DAO 層交互,對多個 DAO 的組合復用。

DAO 層

數據訪問層,與底層 MySQL、Oracle、Hbase 等進行數據交互。

外部接口或第三方平臺

包括其它部門 RPC 開放接口,基礎平臺,其它公司的 HTTP 接口。

 

事務處理

在了解了分層之后,我們再來看一下寫Java Web代碼的時候,大家比較關心的一個問題,那就是涉及到數據庫操作的時候,事務處理應該在哪一層控制呢?

關于這個問題,仁者見仁,智者見智。作者認為,事務處理應該放在Service層和Manager層。

DAO層不應該有事務,應該只是很純的 CRUD 等比較通用的數據訪問方法。一個DAO應該只處理和自己相關的操作,不要有任何組合。組合的事情交給上層。

Service層和Manager層一般會組合多個DAO的CRUD操作,例如:在注冊一個用戶的時候需要往日志表里 INSERT 日志,那么就在 Service 層構造事務,在該事務中調用 Dao 層的 User.Insert () 與 Log.Insert ()。

異常處理

異常處理是Java中比較重要的一個話題,在《Effective Java》中有很多關于異常處理的***實踐,這里不詳細介紹了,本文主要簡單說一下在應用代碼分層之后,各個層次之間的異常應該如何處理,是自己捕獲,還是向上一層拋出。

首先,每一層都是可能發生異常的。由于每一層的職責都不通,處理方式也可能有差別。

DAO層

在 DAO 層,產生的異常類型可能有很多,可能是SQL相關的異常,也可能是數據庫連接相關的異常。

這一層的處理方式可以簡單一點,直接try-catch(Exception),然后封裝成DAOException拋給上一層。這一層一般不需要打印日志,交給Service或者Manager層來打印。

  1. try{ 
  2.    CRUD 
  3. }catch(Exception e){ 
  4.    throw new DAOException(e); 

Manager/Service

首先,對于DAO層拋上來的異常一定要捕獲的,并且記錄日志打印現場。

但是值得注意的是,如果是需要事務控制的方法,要注意捕獲到異常之后再向上拋一個新的異常,如 TransactionRolledbackException,否則事務無法回滾。

這兩層發生的異??梢愿鶕闆r決定是繼續向上拋還是自己處理掉。如果是自己可以處理的異常,就捕獲,打日志,然后通過ErrorCode等方式返回給上一層。如果是自己無法處理或者不知道該如何處理的異常,就直接拋給上一層來處理。

Web

首先,可以明確的一點:Web層不應該再往外拋異常,因為這一層一旦拋異常,就可能會導致用戶跳轉到不友好的錯誤頁面甚至看到錯誤信息等。

如果意識到這個異常將導致頁面無法正常渲染,那么就應該直接跳轉到友好錯誤頁面,加上用戶容易理解的錯誤提示信息。

開放接口層

這一層和Web層一樣,不可以拋出異常。一般通過ErrorCode和ErrorMessage反饋給外部調用方。

這一層,要自己處理好所有的異常,定義好ErrorCode,并記錄好日志,便于日后排查問題。

總結

本文主要介紹了Java Web項目中代碼分層的方案,通過分層之后可以使沒一層更加專注,解除耦合。并簡單介紹了一下分層之后的事務處理和異常處理的邏輯。

【本文是51CTO專欄作者Hollis的原創文章,作者微信公眾號Hollis(ID:hollischuang)】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2010-03-09 13:27:23

Web 2.0應用程序

2009-01-03 14:57:19

ibmdwLotusWeb2.0

2011-09-20 10:41:45

Web

2012-08-09 09:10:56

代碼審查代碼

2025-03-19 09:04:39

2018-01-12 14:37:34

Java代碼實踐

2010-11-26 09:36:41

移動互聯網移動Web界面Web站點

2020-06-12 07:00:00

Web開發項目

2010-04-20 09:14:33

Struts

2009-08-20 09:41:36

2014-03-19 14:34:06

JQuery高性能

2012-12-13 09:47:50

2015-09-23 09:08:38

java反射

2011-06-02 10:25:10

Web服務器部署

2015-06-10 10:18:27

WebAPP開發技巧

2012-12-24 09:49:08

SaaSSaaS安全

2014-11-19 10:08:47

2011-04-15 15:16:18

代碼編程

2017-01-20 09:45:20

JavaScript代碼質量

2010-12-02 14:32:43

Mobile Web移動互聯網移動Web設計
點贊
收藏

51CTO技術棧公眾號

欧美精品一区二区三区一线天视频| 欧美在线精品一区二区三区| 国产粉嫩一区二区三区在线观看 | 妺妺窝人体色777777| youjizz在线视频| 亚洲综合色婷婷在线观看| 国产一区二区三区久久| 91麻豆精品国产无毒不卡在线观看| 好吊色欧美一区二区三区| 亚洲色图欧美色| 精精国产xxx在线视频app| 国产一区不卡视频| 亚洲热线99精品视频| 国内精品视频一区二区三区| 视频一区二区在线播放| 亚洲特级毛片| 日韩视频一区二区三区在线播放| 亚洲天堂电影网| 国内av在线播放| 精品在线手机视频| 精品久久久久久亚洲精品| 99在线视频首页| 国产精品三区在线观看| 色豆豆成人网| 国产午夜精品久久久久久免费视| 97国产精品免费视频| 无套内谢丰满少妇中文字幕| 日本最黄一级片免费在线| 青青草国产精品97视觉盛宴| 国产香蕉精品视频一区二区三区| 国产精品宾馆在线精品酒店| 日本高清视频免费看| 日韩成人一级大片| 在线视频日韩精品| 国产超碰在线播放| 91社区在线观看| 久久成人免费日本黄色| 深夜福利一区二区| 国产一区二区在线观看免费视频| 中文字幕在线观看日本| www.成人网.com| 69精品小视频| 精品人妻一区二区三区视频| 欧美电影h版| 国产精品热久久久久夜色精品三区 | 日本电影一区二区| 欧美丝袜自拍制服另类| 亚洲激情一区二区三区| 一二三区中文字幕| 欧美特黄a级高清免费大片a级| 欧美电视剧在线看免费| 国产女主播自拍| 外国精品视频在线观看| 精品在线播放午夜| 国产精品亚洲自拍| 精品97人妻无码中文永久在线 | 高清国产一区| 国产精品久久久久久99| 国产精品欧美日韩一区| 欧美日韩一级黄| 99亚洲国产精品| 五月婷婷综合久久| 奇米色一区二区| 日韩av电影免费观看高清| 男女男精品视频网站| 日韩欧美久久| 色呦呦网站一区| 亚洲精品日韩精品| 高清美女视频一区| 国产视频911| 欧美尤物一区| 亚洲一区二区影视| 久久国产麻豆精品| 久久久久久久久综合| 日韩一级av毛片| 96sao在线精品免费视频| 一本色道久久综合亚洲aⅴ蜜桃| 人人妻人人做人人爽| 国产高潮在线| 日韩欧美在线播放| 国产精品av免费观看| 男女污污视频在线观看| 国产精品亚洲人在线观看| 66m—66摸成人免费视频| 日韩免费在线视频观看| 手机在线电影一区| 日韩激情第一页| 日韩av影视大全| 欧美成a人片在线观看久| 色婷婷亚洲精品| 美女在线视频一区二区 | 69av视频在线播放| 久久久久久久亚洲| 尹人成人综合网| 久久精品国产91精品亚洲| 亚洲熟妇一区二区三区| 激情婷婷综合| 日韩中文理论片| 欧美丰满艳妇bbwbbw| 成人在线免费观看网站| xvideos亚洲| 一级黄色片网址| 久久影视三级福利片| 91精品国产免费| mm131国产精品| 日韩欧美中文字幕一区二区三区| 亚洲精品久久视频| 成人在线观看一区二区| 在线观看欧美| 欧美日韩日本视频| 欧美午夜性生活| 国产精品高清一区二区| 欧美日韩国产一级片| 亚洲国产欧美日韩在线| 先锋影音一区二区| 欧美伊人久久久久久久久影院 | 欧美日韩的一区二区| 黄色国产在线视频| 91欧美极品| 一个色综合导航| 日本成人免费视频| 国产精品mm| 国产精品久久一| 最近中文字幕在线免费观看| 成人午夜激情影院| 国产精品精品软件视频| 精品欧美一区二区精品少妇| 国产乱子伦一区二区三区国色天香 | 一区二区欧美激情| 五月天婷婷网站| 亚洲天堂偷拍| 成人妇女淫片aaaa视频| 国产露脸国语对白在线| 国产美女一区二区| 日韩精品国内| 日本成a人片在线观看| 国产精品福利电影一区二区三区四区| 亚洲精品国产精品国自产观看| 影音先锋在线播放| 亚洲va欧美va国产va天堂影院| 成人免费在线网| 四虎影视成人精品国库在线观看| 日韩精品视频在线观看免费| 手机av在线看| 欧美日本一区二区高清播放视频| 国产成人高清激情视频在线观看| 小泽玛利亚一区二区三区视频| 成人av在线网站| 欧美日韩成人一区二区三区| 一级毛片视频在线| 色国产综合视频| 手机在线国产视频| 青青草91久久久久久久久| 国产97色在线| 你懂的在线网址| 色综合久久久久久久| 99久久人妻无码中文字幕系列| 亚洲最大在线| 久久久久北条麻妃免费看| 亚洲视频在线免费播放| 亚洲国产高清不卡| 国产美女主播在线播放| 成人香蕉社区| 午夜精品久久久久久99热| 亚洲黄色在线免费观看| 久久综合av免费| 三年中文高清在线观看第6集| 免费在线看电影| 色8久久精品久久久久久蜜| 波多野结衣办公室33分钟| 国产欧美91| 欧美日韩在线精品一区二区三区| 经典三级一区二区| 最新国产精品亚洲| 国产又粗又大又爽视频| 91蜜桃网址入口| 成人短视频在线看| 玖玖玖视频精品| 国产亚洲精品日韩| 日本妇乱大交xxxxx| 中文字幕在线观看不卡视频| 欧美人与性动交α欧美精品| 激情偷拍久久| 欧美日韩精品免费在线观看视频| 亚洲精品.com| 欧美一区二区三区视频免费| 免费在线视频一区二区| 99国产欧美久久久精品| 潘金莲一级淫片aaaaaa播放1| 亚洲同志男男gay1069网站| 日韩一二三区不卡| 欧美亚韩一区二区三区| 日本一区二区三区dvd视频在线| 五十路熟女丰满大屁股| 国产精品一区二区三区av| 九九热精品在线| 91午夜交换视频| 亚洲成人在线观看视频| 欧美xxxxxbbbbb| 亚洲理伦在线| 国产精品久久久一区二区三区| 9i看片成人免费高清| 日韩亚洲综合在线| 天堂av在线播放| 欧美另类高清zo欧美| 中文字幕91视频| 蜜臀av一区二区三区| 日韩国产一区久久| 少妇精品在线| 日本高清视频一区| 四虎在线观看| 91精品国产91久久久久久一区二区 | 国模杨依粉嫩蝴蝶150p| 神马午夜久久| 国产91成人在在线播放| 性xxxx18| 91精品免费观看| 综合网在线观看| 亚洲激情图片小说视频| 1314成人网| 首页欧美精品中文字幕| 色播五月综合| 国产亚洲精品精品国产亚洲综合| 一区二区三欧美| 男人天堂手机在线观看| 欧美日韩久久久久久| 天天操天天爽天天干| 亚洲乱码精品一二三四区日韩在线| www.久久久久久久久久久| 国产精品毛片| 久草视频这里只有精品| 国产精品毛片av| 97视频在线观看免费高清完整版在线观看| a天堂中文在线88| 欧美日本一区二区在线观看| 国产成人精品网| 国产日韩欧美电影| 亚洲色图14p| 成人一区二区三区中文字幕| 午夜啪啪小视频| 日本在线不卡视频一二三区| 成年人视频网站免费观看| 加勒比久久综合| 精品国产一区二区三区日日嗨| 欧美国产中文高清| 91视频国产一区| 国内高清免费在线视频| 日韩精品欧美国产精品忘忧草| 午夜精品久久久久久久爽| 91精品国产免费| 99热这里只有精品1| 黑人巨大精品欧美一区二区免费 | 精品国产伦一区二区三区观看说明| 国产精品久久一区| 日韩一级二级| 国产精品久久久久久久电影| 黄色在线观看网站| 欧美成人性战久久| 国产精品视频久久久久久久| 亚洲大型综合色站| 久久精品国产亚洲av无码娇色| 久久一区二区三区四区| 亚洲成人av免费在线观看| 日本vs亚洲vs韩国一区三区二区| 哪个网站能看毛片| 老牛影视一区二区三区| 黄色三级视频片| 国产一区欧美| www.亚洲成人网| 在线成人亚洲| 国产第一页视频| 日本不卡123| 国产一级免费大片| 国产精品一级片在线观看| 蜜臀aⅴ国产精品久久久国产老师| 成人综合婷婷国产精品久久免费| 亚洲成年人av| 91色在线porny| 欧美人妻一区二区三区| 国产精品国产三级国产专播品爱网 | 亚洲一一在线| 欧美日韩亚洲一区三区| 男人天堂av片| 日韩成人精品在线| 九九久久久久久| av高清久久久| 国产调教在线观看| 亚洲欧美二区三区| 国产视频91在线| 欧美日韩免费视频| 欧美一级特黄aaaaaa| 亚洲欧美另类国产| 神马午夜电影一区二区三区在线观看| 欧美日韩在线播放一区| 国产毛片毛片毛片毛片毛片| 欧美伊人久久大香线蕉综合69| 欧美在线看片| www.久久精品.com| 欧美一区二区三区在线电影| 色欲av永久无码精品无码蜜桃| 日韩毛片在线看| 国产偷拍一区二区| 日韩av在线免费观看一区| www.在线视频.com| 欧美激情极品视频| 尤物视频在线看| 欧美最顶级丰满的aⅴ艳星| 9999精品免费视频| 另类欧美小说| 亚洲天堂日韩在线| 中文字幕一区二区三区最新| av中文一区| 日本不卡一区二区三区视频| 亚洲欧美综合| 国内自拍视频网| 99久久综合色| 中文字幕av免费在线观看| 色欧美乱欧美15图片| 亚洲免费不卡视频| 精品欧美一区二区三区精品久久| 免费a级毛片在线观看| 麻豆乱码国产一区二区三区| 国产精品实拍| 精品丝袜久久| 99久久久无码国产精品性色戒| 北京富婆泄欲对白| 亚洲欧美电影院| 一区精品在线观看| 欧美精品自拍偷拍动漫精品| 欧美日本网站| 欧美激情videoshd| 综合久久伊人| 亚洲春色在线视频| 久久最新视频| 性久久久久久久久久| 亚洲国产aⅴ天堂久久| 国产人妻精品一区二区三| 中文字幕9999| 免费高清视频在线一区| 欧美国产综合视频| 99视频在线精品国自产拍免费观看| 欧美变态另类刺激| 日韩电影在线观看网站| 久久午夜夜伦鲁鲁片| 亚洲一区二区黄色| 特级做a爱片免费69| 精品av久久707| 午夜dj在线观看高清视频完整版| 97久久伊人激情网| 成人在线视频中文字幕| av影院在线播放| 国产精品一区一区| 九九视频免费在线观看| 日韩视频免费观看高清在线视频| 国产超级va在线视频| 992tv成人免费视频| 99精品在免费线中文字幕网站一区| 水蜜桃在线免费观看| 国产自产高清不卡| 日韩一级片大全| 欧美一区二区精品在线| 国产传媒在线播放| 97超碰最新| 欧美三级美国一级| 免费国产a级片| 久久综合九色综合欧美98| 色一情一乱一伦| 亚洲午夜av久久乱码| 一区在线影院| 99热这里只有精品7| 国产一区二区三区四区五区入口 | а√中文在线天堂精品| 99久久久精品视频| 99久久99久久久精品齐齐| 中文字幕黄色片| 色播久久人人爽人人爽人人片视av| 欧美性生活一级| 400部精品国偷自产在线观看| 丁香婷婷综合激情五月色| 丰满少妇乱子伦精品看片| 一本色道久久88亚洲综合88| av日韩在线免费观看| 一卡二卡三卡视频| 久久综合av免费| 国产精品探花视频| 性欧美xxxx| 成人av动漫在线观看| 国产人妻精品久久久久野外| 天涯成人国产亚洲精品一区av| 毛片免费在线| 91久久精品视频| 亚洲免费高清| 大吊一区二区三区| 欧美成人在线直播| 久久电影tv| 91免费视频黄| 2020国产精品自拍| 国产三级漂亮女教师| 91超碰caoporn97人人| 久久福利影院|