Spring Framework 官方文檔——Spring框架概述


版本:5.1.11.BUILD-SNAPSHOT

Spring簡化了Java企業級應用程序的創建。它提供了Java語言在企業級環境中需要的一切,它支持Groovy和Kotlin,且支持多種結構的應用程序。從Spring框架5.1.x版本開始,Spring需要JDK 8+(Java SE 8+),並且它支持JDK 11 LTS。

Spring支持非常多的應用場景。在大型企業中,大部分的應用程序長期運行在升級周期不受開發人員控制的JDK和應用程序服務器上。有些應用程序通過將jar包丟給雲服務器的方式運行。還有一些應用程序運行時不需要服務器(例如:批處理程序等)。

Spring是開源。它的社區很活躍,可以得到許多實際用例的反饋。這一點有助於Spring長期穩定的發展。

Spring是什么意思?

“Spring”這個單詞在不同的語境上下文中表達的含義不同。它可以用來指代Spring框架項目本身(Spring開始的地方。隨着時間流逝,逐漸產生了許多基於Spring的項。通常,現在人們說起“Spring”時,它們說的是Spring以及基於Spring而產生的一系列項目。然而,本參考文檔重點關注基礎:Spring框架本身。

Spring框架分為多個模塊。應用程序可以按需選擇。最核心的是核心容器模塊,它包括了配置模型和依賴注入機制。除此以外,Spring框架還為不同的應用程序體系結構提供了基礎支持,比如消息傳遞、數據庫事務、網絡編程等。Spring框架還包括了基於Servlet的Spring MVC反應式的Spring WebFlux框架。

這里是一些關於模塊的注意點:Spring框架的jar可以部署到JDK9 的模塊路徑(jigsaw)。為了能夠在支持jigsaw的應用程序中使用,Spring 5 附帶了自動命名的清單條目,這些清單條目定義了穩定的語言級別的模塊名稱(spring.core、spring.context等),這些名稱區別於jar工程的名稱(jar使“-”區分而不是使用“.”區分,例如:spring-core、spring-context等)。當然,Spring框架的jar包在JDK 8 和 9 +上都能良好運行。

Spring以及Spring框架的歷史

由於早期的J2EE規范比較復雜,所以誕生Spring框架。盡管有些人認為Java EE和Spring是競爭關系,但實際上Spring是Java EE的輔助。Spring編程模型不完全包含Java EE,它精心挑選了一些規范與其集成在一起:

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

從5.0版本開始,Spring框架至少需要Java EE 7級別的支持(例如:Servlet 3.1 + , JPA 2.1 +),同時,Spring還提供了與Java EE 8 級別的新的API的。如果運行時遇到Servlet 4.0 、JSON綁定的API等,也沒有問題。這樣的話,Spring與Tomcat 8 和 9 、 WebSphere 9 以及 JBoss EAP 7 就完全兼容了。

隨着時間的推移,Java EE在應用程序開發中的角色已經發生了轉變。早期,創建一個應用程序,然后部署到應用程序容器上。現在,借助SpringBoot,可以通過Devops和雲原生的方式創建應用程序。從Spring 5開始,WebFlux應用甚至不直接使用Servlet API。並且可以在非Servlet容器(例如:Netty)上運行。

Spring依然在持續不斷地創新和發展。除了Spring框架,許多其他項目也應運而生,例如:Spring Boot 、Spring Security 、Spring Data、SpringCloud、Spring Batch等。需要注意的是,這些項目有他們自己的源代碼存儲庫以及問題追蹤和版本發布節奏等。有關Spring項目的完整列表,請參見:spring.io/projects

設計原理

當你學習框架的時候,不僅僅需要知其然,更要知其所以然。下面是Spring框架的指導原則:

  • 在每個級別都提供選擇。例如,您可以在不更改代碼的情況下,通過配置切換持久層提供者。對於許多其他基礎架構問題以及與第三方API的集成也是如此。
  • 容納不同的觀點。Spring非常靈活,並且它不要求應用程序應該怎們做。它通過不同的視角來支持多種應用程序。
  • 保持強大的兼容性。Spring對版本進行了精心的管理,這樣,在版本迭代時,破壞性更改被極大地降低。Spring對JDK的版本和第三方庫也進行了精挑細選,這樣,維護應用程序和庫也變得更加方便。
  • 關注API設計。Spring團隊花費了大量的時間和精力來設計直觀的、能夠經歷時間考驗的API。
  • 高質量的代碼。Spring框架強調有意義、及時更新、准確的JavaDoc。它是極少數可以聲明自己的代碼結構清晰且程序之間沒有循環依賴的項目之一。

反饋和貢獻

譯者注:本段沒啥特別的,采用機譯。

對於操作方法問題或診斷或調試問題,我們建議使用StackOverflow,並且有一個問題頁面列出了要使用的建議標簽。如果確切地認為Spring框架中有問題或想提出功能,請使用GitHub Issues

如果您有解決方案或建議的解決方案,可以在Github上提交拉取請求 。但是,請記住,對於除最瑣碎的問題以外的所有問題,我們希望在問題跟蹤器中記錄故障單,在該跟蹤器中進行討論並保留記錄以備將來參考。

有關更多詳細信息,請參見CONTRIBUTING頂級項目頁面上的准則 。

入門

譯者注:本段也沒啥可看的,采用機譯。

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM