大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 學(xué)習(xí)Java框架,從Spring框架中的三種最佳實(shí)踐

學(xué)習(xí)Java框架,從Spring框架中的三種最佳實(shí)踐

更新時(shí)間:2019-08-10 09:00:00 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2900次

image.png

  毫無(wú)疑問(wèn),Spring框架是最流行的Java框架之一,通過(guò)提供依賴注入和控制反轉(zhuǎn)等特性,可以輕松創(chuàng)建企業(yè)級(jí)Java應(yīng)用程序。


  但是,老實(shí)說(shuō),Spring不僅僅是另一個(gè)DI和IOC框架。通過(guò)提供一個(gè)有用的抽象層,它進(jìn)一步簡(jiǎn)化了許多Java的api,例如JDBC、JMS、JavaMail等等。它們消除了Java開(kāi)發(fā)人員在執(zhí)行SQL語(yǔ)句和處理結(jié)果集以獲得他們想要的Java對(duì)象時(shí)所面臨的大部分困難。


  因此,當(dāng)您學(xué)習(xí)Spring時(shí),不僅要學(xué)習(xí)如何使用它,還要學(xué)習(xí)如何用Java和面向?qū)ο蠓绞骄帉懜玫拇a。


  在這篇文章中,小編將分享學(xué)習(xí)Spring過(guò)程中發(fā)現(xiàn)的一些最佳實(shí)踐,主要是通過(guò)閱讀CraigWalls的經(jīng)典動(dòng)作書籍《SpringInAction》和在使用Spring過(guò)程中的體驗(yàn)。


  CodingforInterfaces面向接口的編程


  這是我第一次讀HeadfirstDesignPatterns時(shí)學(xué)到的一個(gè)老的OOP指導(dǎo)原則。這個(gè)OOP設(shè)計(jì)原則的主要目的是減少兩個(gè)類之間的耦合,從而增加靈活性。


  Spring嚴(yán)格遵循這個(gè)面向?qū)ο蟮闹笇?dǎo)方針,并且經(jīng)常公開(kāi)一個(gè)接口來(lái)使用關(guān)鍵類,例如創(chuàng)建JdbcOperation接口來(lái)利用JdbcTemplate。這種做法可以讓不同層之間松散耦合。


  另一個(gè)很好的例子是緩存接口,它用于提供緩存。所有其他的緩存實(shí)現(xiàn),例如EhCache、ConcurrentMapCache和NoOpCache等,都實(shí)現(xiàn)了這個(gè)接口。


  如果您的代碼依賴于緩存接口而不依賴于任何特定的實(shí)現(xiàn),那么您可以切換緩存提供者而不會(huì)影響代碼的其他部分。


  下面是使用集合框架為Java中的接口編寫代碼的簡(jiǎn)單示例。如果您仔細(xì)觀察,在這個(gè)示例中,我使用了接口而不是實(shí)現(xiàn)來(lái)聲明Java中的變量、參數(shù)和返回方法類型。

image.png

  這種編碼風(fēng)格是靈活的,在將來(lái)更容易進(jìn)行擴(kuò)展。


  偏愛(ài)unchecked的異常勝過(guò)checked異常


  如果您已經(jīng)使用了Spring框架,那么您就會(huì)注意到Spring更傾向于不檢查的異常,而不是檢查過(guò)的異常,最好的例子就是SpringJDBC。


  Spring有豐富的異常層次結(jié)構(gòu)來(lái)描述連接和從數(shù)據(jù)庫(kù)檢索數(shù)據(jù)時(shí)可以獲得的不同錯(cuò)誤,但是它們的根是DataAccessException,這是未檢查的。


  Spring認(rèn)為,大多數(shù)錯(cuò)誤都源于在catch塊中無(wú)法糾正的原因,因此它將捕獲異常的決定留給開(kāi)發(fā)人員,而不是像Java那樣強(qiáng)制他們進(jìn)入異常。其結(jié)果是更簡(jiǎn)潔的代碼,沒(méi)有空的catch塊——以及更少的try-catch塊。


  在處理Java中的錯(cuò)誤和異常時(shí),這也是最佳實(shí)踐之一。


  使用模板方法設(shè)計(jì)模式


  Spring大量使用模板方法設(shè)計(jì)模式來(lái)簡(jiǎn)化事情。這方面的一個(gè)很好的例子是JdbcTemplate,它在使用JDBCAPI時(shí)省去了很多麻煩。您只需要定義它需要什么,Spring就會(huì)處理流程的其余部分。


  如果您不知道,模板模式定義了一個(gè)流程或算法,在這個(gè)過(guò)程或算法中,您無(wú)法更改流程,但同時(shí),您可以根據(jù)需要定制步驟。


  例如,在處理JDBC時(shí),可以使用JdbcTemplate來(lái)執(zhí)行查詢并獲取所需的對(duì)象。您只需要提供SQL,它在每種情況下都是不同的,以及映射邏輯將一行從一個(gè)表映射到一個(gè)對(duì)象。


  這里有一個(gè)很好的圖表,很好地解釋了模板模式。您可以看到,每個(gè)人都有一些共同的任務(wù),但是他們做不同的工作,模板方法很好地捕捉到了這一點(diǎn)。他們所需要做的就是定義他們的工作,他們可以通過(guò)定義work()抽象方法來(lái)定義他們的工作。

image.png

  除了JdbcTemplate之外,您還可以在Spring框架的API中找到許多模板方法模式的其他示例,例如JmsTemplate和RestTemplate,它們?cè)试S您使用Java應(yīng)用程序中的RESTAPI。


  這就是您可以從Spring中學(xué)到的一些Java最佳實(shí)踐。Spring是一個(gè)很棒的框架,其作者是經(jīng)驗(yàn)豐富的Java開(kāi)發(fā)人員。通過(guò)使用Spring以及查看它們的代碼、所做的決策以及它們?nèi)绾卧O(shè)計(jì)api,您可以學(xué)到很多東西。Spring是開(kāi)源的,這意味著您可以下載并查看它們的源代碼。


  我知道Spring是許多這樣的最佳實(shí)踐的集合,有很多東西需要學(xué)習(xí),但是我發(fā)現(xiàn)這三種方法在Spring中隨處可見(jiàn),這對(duì)Spring框架的代碼質(zhì)量產(chǎn)生了巨大的影響。


  以上是小編為大家總結(jié)的內(nèi)容,如果在閱讀中遇到問(wèn)題,可以咨詢動(dòng)力節(jié)點(diǎn)IT培訓(xùn)官網(wǎng)的在線客服老師。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 四虎欧美 | 精品久久久久久久久久中文字幕 | 久久国产精品永久免费网站 | 2021国产精品自产拍在线 | 99精品欧美一区二区三区美图 | 草草操| 欧美激情在线观看一区二区三区 | 中文字幕在线激情日韩一区 | 久久艹在线观看 | 香蕉视频成人在线观看 | 久久久精品成人免费看 | 国产免费久久精品丫丫 | 久久97精品久久久久久清纯 | 国产免费变态视频网址网站 | 在线亚洲欧洲福利视频 | 奇米777视频二区中文字幕 | 全部费免一级毛片不收费 | 色综合社区| 国产精品午夜性视频 | 中文字幕亚洲综合 | 四虎永久免费观看紧急入口 | 国产1区精品 | 久草在线国产视频 | 亚洲 国产 图片 | 国产在线短视频 | 欧美视频在线观看 | 一级有奶水毛片免费看 | 天天干b | 999热这里全都是精品 | 奇米777影视 | 日日夜夜操操操 | 精品一久久香蕉国产线看观看下 | 亚洲精品国产五月色 | 99av在线| 久久这里只有精品国产99 | 四虎影视免费观看免费观看 | 999毛片| 久久婷婷午色综合夜啪 | 国产在线一区二区三区欧美 | 九九热精彩视频 | 亚洲精品区一区二区三区四 |