Java基礎(chǔ)學(xué)習(xí):Java框架學(xué)習(xí)方法

Java基礎(chǔ)學(xué)習(xí):Java框架學(xué)習(xí)方法

長沙中公優(yōu)就業(yè)      2022-04-05 17:56:01     11

Java基礎(chǔ)學(xué)習(xí):Java框架學(xué)習(xí)方法,  毫無疑問,Spring框架是最流行的Java框架之一,通過提供依賴注入和控制反轉(zhuǎn)等特性,可以輕松創(chuàng)建企業(yè)級Java應(yīng)用程序?! 〉?

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹


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


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


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


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


  這本書對我產(chǎn)生了巨大的影響,因為克雷格出色的寫作風(fēng)格,以及他解釋Spring每一個概念的方式。如果你還沒有讀過它,我強烈建議你去讀這本書——它完全值得你花費時間和金錢。


  無論如何,在不浪費時間的情況下,以下是我學(xué)到的三種最佳實踐,并建議每一個Java程序員在用Java編寫代碼時都要注意到這一點并加以應(yīng)用。


  1、CodingforInterfaces面向接口的編程


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


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


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


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


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

  importjava.util.Arrays;  importjava.util.List;  importjava.util.stream.Collectors;    publicclassHello{  publicstaticvoidmain(Stringargs[]){  //Usinginterfaceasvariabletypes  List<String>rawMessage=Arrays.asList("one","two","three");  List<String>allcaps=toCapitalCase(rawMessage);  System.out.println(allcaps);  }    publicstaticList<String>toCapitalCase(List<String>messages){  returnmessages.stream()  .map(String::toUpperCase)  .collect(Collectors.toList());  }  }

  這種編碼風(fēng)格是靈活的,在將來更容易進行擴展。


  2、偏愛unchecked的異常勝過checked異常


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


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


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


  在處理Java中的錯誤和異常時,這也是最佳實踐之一。


  3、使用模板方法設(shè)計模式


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


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


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


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


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


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


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


  以上就是長沙中公優(yōu)就業(yè)java培訓(xùn)機構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):Java框架學(xué)習(xí)方法”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。


Java基礎(chǔ)學(xué)習(xí)

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。