0. Spring 簡介 | Spring 學習筆記
Spring作為一個被廣泛使用的 Java 框架 ,讓我們可以很容易的建立基於 Java 的企業級應用。它提供了開發企業級應用所需要的所有東西,同時也支援基於 JVM (Java Virtual Machine, Java 虛擬機器) 的語言,如 Groovy 和 安卓開發官方語言 Kotlin 。 Spring 同樣是一個非常靈活的框架,可以根據我們自身應用的需求,來建立不同型別的軟體架構。
本教程後續課程將基於 Spring Framework 5.0 以上的版本進行,該版本需要安裝 JDK 8+ 的版本。
在本教程開始之前,我們將對 Spring 框架進行一些簡單的介紹,讓零基礎的 Java 開發者能夠有一些大概的印象。
Spring 的意思
當我剛開始接觸 Spring 的時候,開啟官網就一臉懵逼,我們先來感受一下。

Spring Projects
這麼多東西,我們該先從哪一個學習。
我們平時說的 Spring 其實在不同上下文裡面有不同的意思。它有時候指的是 Spring Framework 這個專案本身,這個專案作為 Spring 全家桶最核心的一個框架,上圖所有其他的 Spring 專案都是基於 Spring Framework 而構建的;然後有時間我們所說的 Spring 指代的是整個 Spring 全家桶,包括 Spring Framework , Spring Boot , Spring Clouod 等。
在本教程中,我們將要學習的也是作為 Spring 全家桶基礎框架的 Spring Framework ,但是在開發環境的搭建中,我們會使用 Spring Boot 來簡化我們的教程環境搭建。
Spring Framework以模組化的形式進行釋出,我們開發的應用可以根據我們的需求來選擇我們所需要的模組,這是一種非常棒的設計思想,模組化的設計可以讓程式間的不同功能或依賴解耦,讓我們的程式更加靈活也更容易擴充套件(增加新的功能)。
在 Spring Framework 的核心模組中,最重要的是 核心容器 ,該容器包括了 配置模型 和 依賴注入(控制反轉) 的機制。除了這些基礎設施,框架還提供了其他的基礎功能來支援不同架構的應用,如:
- 訊息傳送 Messaging
- 事務性資料 Transactional data
- 持久化 Persistence
- Web
- 基於 Servlet 的 Spring MVC 框架和 Spring WebFlux Reactive 框架
Spring Framework 的歷史
Spring框架最早在 2003 年 Java 企業應用開發框架 J2EE 的一個補充, Spring 可以作為 J2EE 的一個子集,精選了 J2EE 中的部分 Specification ,包括了:
- Servlet API
- Socket/">WebSocket API
- Concurrency Utilities
- JSON Binding API
- Bean Validation
- JPA
- JMS
- JTA/JCA
Spring Framework同時還支援 依賴注入 JSR330 和 通用註解 JRS250 規範。
設計哲學
Spring Framework帶給我最大的好處並不是框架本身提供的這些功能,而是它的設計思想,和方式。在 Spring 中,有以下幾個原則:
- 為每一層都提供選擇的機會。比如,你可以更換持久層的底層框架(如切換資料庫)而不用修改你的程式碼。
- 容納不同的觀點。提供更多的靈活性,而不是關注在事情應該怎麼被完成本身,對於同一個事情,從不同維度提供多種可以解決的方案。
- 保持強大的向後相容性。
- 關注API的設計。
- 高質量的程式碼。 Spring 的程式碼堪稱藝術品, Clean Code 且有完善的 Javadoc ,在各包之間沒有迴圈依賴。
以上便是對 Spring 的一些簡單的介紹。