Spring數(shù)據(jù)訪問模板化方法
在讀《Spring in Action》一書,讀到Spring數(shù)據(jù)訪問模板化的內(nèi)容時,書中以乘坐飛機拖運行李為例,介紹了模板方法這一設(shè)計模式。
在乘坐飛機需要拖運行李時,我們需要需要進行行李登記。然后,將行李交給工作人員,工作人員會對行李進行稱重,安全掃描檢查,然后通過傳送帶將行李傳送到擺渡車。擺渡車載上行李,將行李拉到飛機。到達目的地后,擺渡車會將行李從飛機上拉到取行李處,然后乘客取走自己的行李。
查看整個過程,這個過程對于所有乘客基本都是相同的。對不同乘客不一樣的地方,是登記行李時需要各個乘客參與,稱重后繳費時需要乘客參與,到達目的地后取走行李時需要乘客參與。除此之外,整個過程無需乘客參與,是不變的部分。
把上述場景抽象一下,就是模板方法這一設(shè)計模式。模板方法設(shè)計模式定義過程的架構(gòu)。整個過程中不變的部分在父類中定義,過程中需要改變的部分,交由各個子類來實現(xiàn)。這樣,對于具體業(yè)務(wù)邏輯來說,實現(xiàn)整個過程,只需要開發(fā)需要變化的部分,即各個子類的邏輯即可,而不用寫大量的固定不變的代碼。
在Spring訪問數(shù)據(jù)庫中的數(shù)據(jù)時,同樣適用模板方法。
我們使用JDBC來訪問數(shù)據(jù)庫的數(shù)據(jù)時,大致的處理過程為,打開一個連接,開始事務(wù),執(zhí)行SQL,獲取返回的數(shù)據(jù),提交事務(wù),關(guān)閉資源,異常處理等。在訪問各個數(shù)據(jù)時,打開連接,開始事務(wù),提交事務(wù),關(guān)閉資源,異常處理等過程都是不變的,沒有必要在每次訪問數(shù)據(jù)時都把上述邏輯寫一遍。每次訪問數(shù)據(jù)時,我們應(yīng)該專注于執(zhí)行的SQL以及獲取返回的數(shù)據(jù)。所以,可以使用模板方法這一設(shè)計模式,來優(yōu)化這塊的代碼結(jié)構(gòu)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Spring?boot2.0?實現(xiàn)日志集成的方法(2)
這篇文章主要介紹了Spring?boot2.0?實現(xiàn)日志集成的方法,上一章講解了spring?boot日志簡單集成,這篇我們將日志進行分類,常規(guī)日志、異常日志、監(jiān)控日志等,需要將日志輸出到不同的文件,具體內(nèi)容需要的小伙伴可以參考一下2022-04-04從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析)
下面小編就為大家分享一篇從源碼角度簡單看StringBuilder和StringBuffer的異同(全面解析),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12使用Easyexcel實現(xiàn)不同場景的數(shù)據(jù)導(dǎo)出功能
這篇文章主要為大家詳細(xì)介紹了如何在不同場景下使用Easyexcel實現(xiàn)數(shù)據(jù)導(dǎo)出功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03java實現(xiàn)字符串和日期類型相互轉(zhuǎn)換的方法
這篇文章主要介紹了java實現(xiàn)字符串和日期類型相互轉(zhuǎn)換的方法,涉及java針對日期與字符串的轉(zhuǎn)換與運算相關(guān)操作技巧,需要的朋友可以參考下2017-02-02