Spring框架文檔(一 )

原文英文鏈接:

https://docs.spring.io/spring/docs/5.2.3.BUILD-SNAPSHOT/spring-framework-reference/overview.html#overview

https://github.com/spring-projects/spring-framework

(由於鄙人英文水平以及技術能力有限,可能無法做到 信達雅,如有不當之處,煩請在評論區指出,非常感謝!)

 

Spring框架概述

版本5.2.3.BUILD-SNAPSHOT
 

    Spring使創建Java企業應用程序變得很容易。它提供了在企業環境中使用Java語言所需要的一切,支持Groovy和Kotlin作爲JVM上的替代語言,並根據應用程序的需要靈活地創建多種體系結構。從Spring Framework 5.1開始,Spring需要JDK 8+ (Java SE 8+),並提供對JDK 11 LTS(譯者注:Long-Term-Support)的開箱即用支持。建議將Java SE 8 update 60作爲Java 8的最低補丁版本,但通常建議使用最新的補丁版本。

Spring支持廣泛的應用程序場景。在大型企業中,應用程序通常存在很長時間,必須在JDK和應用服務器上運行,而升級週期超出了開發人員的控制。其他的可能作爲嵌入服務器的單個jar運行,可能在雲環境中。還有一些可能是不需要服務器的獨立應用程序(例如批處理或集成工作負載)。

Spring是開源的。它擁有一個大型且活躍的社區,該社區基於各種各樣的實際用例提供持續的反饋。這幫助Spring在很長一段時間內成功地發展。

 

1. What We Mean by "Spring"

“spring”在不同的上下文中有不同的意思。它可以用來引用Spring框架項目本身,這是一切的起點。隨着時間的推移,其他Spring項目已經構建在Spring框架之上。通常,當人們說“Spring”時,他們指的是整個項目家族。本參考文檔主要關注基礎:Spring框架本身。

Spring框架分爲多個模塊。應用程序可以選擇需要哪些模塊。core 是核心容器的模塊,包括配置模塊和依賴項注入機制。除此之外,Spring框架還爲不同的應用程序體系結構提供基礎支持,包括消息傳遞、事務數據和持久化以及web。它還包括基於servlet的Spring MVC web框架,以及與最新的的Spring WebFlux reactive web框架。

關於模塊的說明:Spring的框架jar允許部署到JDK 9的模塊路徑(“Jigsaw”)。爲了在支持jigsaw的應用程序中使用,Spring Framework 5 jar附帶了“自動模塊名”清單條目,它定義了穩定的語言級模塊名(“Spring”)。核心”、“春天。獨立於jar工件名稱(jar遵循相同的命名模式,使用“-”而不是“。“spring核心”和“spring上下文”)。當然,Spring的框架jar在JDK 8和9+的類路徑上都能很好地工作。

關於模塊的註釋:Spring的框架jar允許部署到JDK 9的模塊路徑(“Jigsaw”)。爲了在支持Jigsaw的應用程序中使用,Spring Framework 5 jar附帶了“自動模塊名稱”清單條目,這些清單條目定義了與jar工件無關的穩定語言級別的模塊名稱(“ spring.core”,“ spring.context”等)。他們和其所在的jar包名字是不一樣的(jar包名字用 "-" 分割而不是 ","  ,如“ spring-core”,“ spring-context”等),當然spring框架的jar包可以在JDK8和JDK9+環境中正常運行。

 

2. History of Spring and the Spring Framework

Spring是在2003年作爲對早期J2EE規範複雜性的響應而出現的。雖然有些人認爲Java EE和Spring是競爭對手,但實際上,Spring是Java EE的補充。Spring編程模型雖然沒有遵循Java EE平臺規範,但是它和如下的J2EE規範緊密結合:

Spring框架還支持依賴項注入(JSR 330)和通用註釋(JSR 250)規範,應用程序開發人員可以選擇使用這些規範來代替Spring框架提供的特定於Spring的機制。

  • 從Spring Framework 5.0開始,Spring至少需要Java EE 7以上(例如Servlet 3.1 +,JPA 2.1+),同時提供與Java EE 8中的較新API的運行時的支持(例如Servlet 4.0,JSON Binding API)。這樣可以確保Spring與Tomcat 8和9,WebSphere 9以及JBoss EAP 7完全兼容。

    隨着時間的推移,Java EE在應用程序開發中的作用已經演變。在Java EE和Spring的早期,創建了應用程序以將其部署到應用程序服務器。如今,藉助Spring Boot,可以通過對devops和雲環境中創建應用程序,並嵌入Servlet容器並對其進行微不足道的更改。從Spring Framework 5開始,WebFlux應用程序甚至不直接使用Servlet API,並且可以在非Servlet容器的服務器(例如Netty)上運行。

    spring繼續創新和發展。除了Spring Framework,還有其他項目,例如Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等。重要的是要記住,每個項目都有其自己的源代碼存儲庫,問題跟蹤機制和發版計劃。有關Spring項目的完整列表,請參見spring.io/projects

     

    3. Design Philosophy

    當您瞭解框架時,不僅要了解框架的作用,而且要遵循的原則很重要。以下是Spring框架的指導原則:

    提供每個級別的選擇。Spring使您可以儘可能推遲設計決策。例如,您可以在不更改代碼的情況下通過配置切換持久性提供程序。對於許多其他基礎架構問題以及與第三方API的集成也是如此。

    適應不同的觀點。Spring擁有靈活性,並且對如何完成工作一無所知。它從不同的角度支持廣泛的應用程序需求。

    保持強大的向後兼容性。對Spring的演變進行了精心管理,以使各個版本之間幾乎沒有重大更改。Spring支持精心選擇的JDK版本和第三方庫,以方便維護依賴於Spring的應用程序和庫。

    關心API設計。Spring團隊投入了大量的思想和時間來製作直觀,並在許多版本和很多年中都適用的API。

    爲代碼質量設置高標準。Spring框架非常強調有意義,最新和準確的javadoc。它是極少數可以聲明乾淨代碼結構且程序包之間沒有循環依賴關係的項目之一。

     

    4. Feedback and Contributions

    對於操作問題、診斷或調試問題,我們建議使用StackOverflow,我們有一個問題頁面,列出了建議使用的標籤。如果您相當確定Spring框架中存在問題,或者想建議某個特性,請使用GitHub。

    如果您已經有了解決方案或建議的修復,您可以在Github上提交一個pull request。但是,請記住,除了最瑣碎的問題外,我們希望在問題跟蹤器中記錄故障單,在該跟蹤器中進行討論並保留記錄以備將來參考。在那裏進行討論,並留下記錄供將來參考。

    有關更多詳細信息,請參見提供內容的頂級項目頁面中的指導原則。

     

    5. Getting Started

    如果您剛剛開始使用Spring,則可能需要通過創建基於Spring Boot的應用程序來開始使用Spring Framework 。Spring Boot提供了一種快速(且自以爲是)的方式來創建可用於生產環境的基於Spring的應用程序。它基於Spring框架,更傾向於約定而不是配置,並且旨在使您儘快啓動並運行。

    您可以使用start.spring.io生成一個基本項目,或遵循“入門”指南之一,例如“ 入門RESTful Web Service的構建”。這些指南不僅易於理解,而且非常注重任務,並且大多數基於Spring Boot。它們還涵蓋了Spring產品組合中的其他項目,您在解決特定問題時可能要考慮這些項目。

  •  

發佈了273 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章