Java開發人員能夠從Spring框架中學到編程技巧

毫無疑問,Spring Framework是最受歡迎的Java框架之一,經過提供依賴注入和控制反轉等特性,能夠輕鬆建立真實的企業級Java應用程序。可是,Spring不只是一個DI和IOC框架。經過提供有用的抽象層,它能夠簡化許多Java API,例如JDBC,JMS,Java Mail等。使用Spring的JdbcTempalte和其餘實用程序類使用JDBC要容易得多。它們刪除了大多數與開發SQL語句和處理ResultSet相關的 Java開發人員面臨的摩擦,以獲取他們想要的Java對象。java

所以,當學習Spring框架時,不只要學習如何使用它,還要了解如何在Java和麪向對象編程中編寫更好的代碼。在本文中,將分享在學習Spring時遇到的一些最佳實踐算法

1.接口編碼數據庫

這是在閱讀Head First Design Pattern時首先學到的舊OOP指南。該OOP設計原則的主要目的是減小兩個類之間的耦合,從而提升靈活性。編程

Spring嚴格遵循這個面向對象的準則,並常常暴露一個接口來使用密鑰類,例如建立JdbcOperation接口以利用JdbcTemplate。這種作法促進了不一樣層之間的鬆散耦合。設計模式

另外一個很好的例子是Cache 接口,用於提供緩存。全部其餘緩存實現,例如EhCache,ConcurrentMapCache和NoOpCache實現這個接口。api

若是你的代碼依賴於Cache接口而不依賴於任何特定實現,則能夠切換緩存提供程序而不會影響代碼的其餘部分。緩存

下面是使用Collection框架在Java中編寫接口的簡單代碼示例。若是仔細觀察,在這個示例中,我使用了一個接口而不是實現來聲明Java中的變量、參數和返回方法類型。框架

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /**學習

  • Program to demonstrate coding for interfaces in Java
  • @author WINDOWS 8

/ public class Hello { public static void main(String args[]) { // Using interface as variable types List rawMessage = Arrays.asList("one", "two", "three"); List allcaps = toCapitalCase(rawMessage); System.out.println(allcaps); } /*編碼

  • Using Interface as type of argument and return type */ public static List toCapitalCase(List messages) { return messages.stream() .map(String::toUpperCase) .collect(Collectors.toList()); } }

這種編碼風格靈活,未來更容易更改。

  1. 檢查異常和未經檢查異常

若是你使用過Spring framework,就會注意到Spring更喜歡未檢查的異常而不是已檢查的異常,最好的例子是Spring JDBC。

Spring有一個豐富的異常層次結構,用於描述從數據庫中鏈接和檢索數據時可能出現的不一樣錯誤,可是這些錯誤的根源是DataAccessException,它是未選中的。

Spring認爲,大多數都是因爲沒法在catch塊中糾正錯誤形成的,所以它決定捕獲開發人員的異常,而不是像Java那樣強制它們。結果是代碼更整潔,沒有空的catch塊,而且try-catch塊更少。這也是在Java中處理錯誤和異常時的最佳實踐之一。

3.模板設計模式的使用

Spring大量使用Template方法設計模式來簡化事情。一個很好的例子是JdbcTemplate,它在使用JDBC API時消除了不少麻煩。你只要定義須要的內容,Spring負責流程的其他部分。

若是不知道模板設計模式定義了一個過程或算法,你不可能改變這個過程,但你能夠根據你的需求來制定步驟.

例如,在處理JDBC時,能夠使用JdbcTemplate執行查詢並得到所需的對象。你只須要提供在每種狀況下都不一樣的SQL,以及將行從表映射到對象的映射邏輯。

這是一個很好的圖表,它很好地解釋了模板設計模式。你能夠看到每一個人都有一些共同的任務,但他們作了不一樣的工做,而且很好地經過Template方法捕獲。它們所須要定義的是它們的工做,它們經過將work()定義爲一個抽象方法來定義它們的工做。

Java開發人員能夠從Spring框架中學到編程技巧 這就是您能夠從Spring框架中學到的一些Java最佳實踐,不管如何,若是您遇到過從Spring Framework學到的任何其餘最佳實踐,請在評論中與咱們分享。

相關文章
相關標籤/搜索