0. Spring 簡(jiǎn)介 | Spring 學(xué)習(xí)筆記

Spring 作為一個(gè)被廣泛使用的 Java 框架,讓我們可以很容易的創(chuàng)建基于 Java 的企業(yè)級(jí)應(yīng)用。它提供了開發(fā)企業(yè)級(jí)應(yīng)用所需要的所有東西,同時(shí)也支持基于 JVM (Java Virtual Machine, Java 虛擬機(jī)) 的語言,如 Groovy 和 安卓開發(fā)官方語言 Kotlin。Spring 同樣是一個(gè)非常靈活的框架,可以根據(jù)我們自身應(yīng)用的需求,來創(chuàng)建不同類型的軟件架構(gòu)。

本教程后續(xù)課程將基于 Spring Framework 5.0 以上的版本進(jìn)行,該版本需要安裝 JDK 8+ 的版本。

在本教程開始之前,我們將對(duì) Spring 框架進(jìn)行一些簡(jiǎn)單的介紹,讓零基礎(chǔ)的 Java 開發(fā)者能夠有一些大概的印象。

Spring 的意思

當(dāng)我剛開始接觸 Spring 的時(shí)候,打開官網(wǎng)就一臉懵逼,我們先來感受一下。

Spring Projects

這么多東西,我們?cè)撓葟哪囊粋€(gè)學(xué)習(xí)。

我們平時(shí)說的 Spring 其實(shí)在不同上下文里面有不同的意思。它有時(shí)候指的是 Spring Framework 這個(gè)項(xiàng)目本身,這個(gè)項(xiàng)目作為 Spring 全家桶最核心的一個(gè)框架,上圖所有其他的 Spring 項(xiàng)目都是基于 Spring Framework 而構(gòu)建的;然后有時(shí)間我們所說的 Spring 指代的是整個(gè) Spring 全家桶,包括 Spring Framework, Spring Boot, Spring Clouod 等。

在本教程中,我們將要學(xué)習(xí)的也是作為 Spring 全家桶基礎(chǔ)框架的 Spring Framework,但是在開發(fā)環(huán)境的搭建中,我們會(huì)使用 Spring Boot 來簡(jiǎn)化我們的教程環(huán)境搭建。

Spring Framework 以模塊化的形式進(jìn)行發(fā)布,我們開發(fā)的應(yīng)用可以根據(jù)我們的需求來選擇我們所需要的模塊,這是一種非常棒的設(shè)計(jì)思想,模塊化的設(shè)計(jì)可以讓程序間的不同功能或依賴解耦,讓我們的程序更加靈活也更容易擴(kuò)展(增加新的功能)。

Spring Framework 的核心模塊中,最重要的是 核心容器,該容器包括了配置模型依賴注入(控制反轉(zhuǎn))的機(jī)制。除了這些基礎(chǔ)設(shè)施,框架還提供了其他的基礎(chǔ)功能來支持不同架構(gòu)的應(yīng)用,如:

  • 消息發(fā)送 Messaging
  • 事務(wù)性數(shù)據(jù) Transactional data
  • 持久化 Persistence
  • Web
  • 基于 ServletSpring MVC 框架和 Spring WebFlux Reactive 框架

Spring Framework 的歷史

Spring 框架最早在 2003 年 Java 企業(yè)應(yīng)用開發(fā)框架 J2EE 的一個(gè)補(bǔ)充,Spring 可以作為 J2EE 的一個(gè)子集,精選了 J2EE 中的部分 Specification,包括了:

  • Servlet API
  • WebSocket API
  • Concurrency Utilities
  • JSON Binding API
  • Bean Validation
  • JPA
  • JMS
  • JTA/JCA

Spring Framework 同時(shí)還支持 依賴注入 JSR330通用注解 JRS250 規(guī)范。

設(shè)計(jì)哲學(xué)

Spring Framework 帶給我最大的好處并不是框架本身提供的這些功能,而是它的設(shè)計(jì)思想,和方式。在 Spring 中,有以下幾個(gè)原則:

  • 為每一層都提供選擇的機(jī)會(huì)。比如,你可以更換持久層的底層框架(如切換數(shù)據(jù)庫(kù))而不用修改你的代碼。
  • 容納不同的觀點(diǎn)。提供更多的靈活性,而不是關(guān)注在事情應(yīng)該怎么被完成本身,對(duì)于同一個(gè)事情,從不同維度提供多種可以解決的方案。
  • 保持強(qiáng)大的向后兼容性。
  • 關(guān)注API的設(shè)計(jì)。
  • 高質(zhì)量的代碼。Spring 的代碼堪稱藝術(shù)品,Clean Code 且有完善的 Javadoc,在各包之間沒有循環(huán)依賴。

以上便是對(duì) Spring 的一些簡(jiǎn)單的介紹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,261評(píng)論 6 342
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 下面的知識(shí)點(diǎn)呢,是自己第一次做這個(gè)效果,記錄下知識(shí),不知道有沒有更好的實(shí)現(xiàn)方法。文章二------改進(jìn)版在Andr...
    centerzx閱讀 11,084評(píng)論 16 107
  • 我叫胡一,胡言亂語的胡,一敗涂地的一,沒什么特別的。 我爸是個(gè)軍人,犧牲于一場(chǎng)無意義的戰(zhàn)爭(zhēng)中,打娘胎里出來,我就沒...
    蕎二熊閱讀 277評(píng)論 2 2

友情鏈接更多精彩內(nèi)容