Spring Framework 參考文檔(概述)

概述

Spring使建立Java企業應用程序變得很容易,它提供了在企業環境中使用Java語言所須要的一切,支持Groovy和Kotlin做爲JVM上的替代語言,並根據應用程序的需求靈活地建立多種體系結構,從Spring Framework 5.1開始,Spring須要JDK 8+(Java SE 8+),併爲JDK 11 LTS提供開箱即用的支持。java

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

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

咱們所說的「Spring」是什麼意思

「Spring」一詞在不一樣的上下文中有不一樣的含義,它能夠用來引用Spring Framework項目自己,這是它開始的地方,隨着時間的推移,其餘Spring項目已經構建在Spring Framework之上,大多數狀況下,當人們說「Spring」,他們指的是整個家庭的項目,這個參考文檔主要關注基礎:Spring Framework自己。編程

Spring Framework被劃分爲多個模塊,應用程序能夠選擇它們須要哪些模塊,核心是核心容器的模塊,包括配置模型和依賴注入機制。除此以外,Spring Framework還爲不一樣的應用程序體系結構提供了基礎支持,包括消息傳遞、事務數據和持久性以及web,它還包括基於servlet的Spring MVC web框架,以及與之並行的Spring WebFlux反應性web框架。segmentfault

關於模塊的說明:Spring的框架jar容許部署到JDK 9的模塊路徑(「Jigsaw」)。爲了在支持jigsaw的應用程序中使用,Spring Framework 5 jar附帶「Automatic-Module-Name」清單條目,其中定義了穩定的語言級模塊名稱("spring.core"、"spring.context"等),獨立於jar工件名稱(jar遵循相同的命名模式,使用「-」代替「.」,例如「spring-core」,「spring-context」),固然,Spring的框架jar在JDK 8和9+的類路徑上都能很好地工做。服務器

Spring和Spring Framework的歷史

Spring是在2003年做爲對早期J2EE規範複雜性的響應而出現的,雖然有些人認爲Java EE和Spring是競爭對手,但Spring其實是Java EE的補充,Spring編程模型不包含Java EE平臺規範,相反,它集成了從EE保護傘中精心選擇的各個規範:併發

Spring Framework還支持依賴項注入(JSR 330)和公共註解(JSR 250)規範,應用程序開發人員能夠選擇使用這些規範,而不是Spring Framework提供的特定於Spring的機制。框架

Spring Framework 5.0開始,Spring最小須要Java EE 7級別(例如Servlet 3.1 +、JPA 2.1 +),同時提供開箱即用的集成與更新的API在Java EE 8級別(例如Servlet 4.0、JSON綁定API)在運行時遇到,這使得Spring與Tomcat 8和Tomcat 九、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 Framework的指導原則:

  • 在每一個層次上提供選擇,Spring容許你儘量推遲設計決策,例如,你能夠經過配置切換持久性提供者,而無需更改代碼,對於許多其餘基礎設施問題以及與第三方API的集成也是如此。
  • 適應不一樣的視角,Spring支持靈活性,而且不對應該如何作事情發表意見,它支持具備不一樣視角的普遍應用程序需求。
  • 保持強大的向後兼容性,Spring的發展已經被當心地管理,以在版本之間強制進行不多的破壞性更改,Spring支持精心選擇的JDK版本和第三方庫,以方便維護依賴於Spring的應用程序和庫。
  • 關注API設計,Spring團隊投入了大量的思想和時間來開發直觀的API,並支持多個版本和許多年。
  • 爲代碼質量設定高標準,Spring Framework很是強調有意義的、當前的和準確的javadoc,它是極少數能夠聲明乾淨代碼結構且包之間沒有循環依賴關係的項目之一。

入門

若是你剛剛開始使用Spring,你可能但願經過建立一個基於Spring boot的應用程序來開始使用Spring Framework,Spring Boot提供了一種快速(且固定)的方法來建立基於Spring的可生產應用程序,它基於Spring Framework,支持約定而不是配置,旨在讓你儘量快地啓動和運行。

你可使用start.spring.io生成一個基本項目或遵循「入門」指南之一,例如開始構建RESTful Web服務。這些指南不只更容易理解,並且很是專一於任務,其中大多數都是基於Spring Boot的,它們還涵蓋了Spring portfolio中的其餘項目,你在解決特定問題時可能須要考慮這些項目。

相關文章
相關標籤/搜索