Spring 框架介紹 [Spring 優勢][Spring 應用領域][體系結構][目錄結構][基礎 jar 包]

您的「關注」和「點贊」,是信任,是承認,是支持,是動力......web

如意見相佐,可留言。
本人必將不遺餘力試圖作到準確和全面,終其一輩子進行修改補充更新。spring

1 Spring 框架概述

能夠看一下官網給出的介紹,以下圖所示:
在這裏插入圖片描述數據庫

Spring 是一個主流的 Java Web 開發框架,該框架是一個輕量級的應用框架,具備很高的凝聚力和吸引力。Spring使每一個人均可以更快,更輕鬆,更安全地進行Java編程。Spring對速度,簡單性和生產率的關注使其成爲世界上最受歡迎的 Java框架。express

Spring 是分層的 Java SE/EE full-stack 輕量級開源框架,以 IoC(Inverse of Control,控制反轉)和 AOP(Aspect Oriented Programming,面向切面編程)爲內核,使用基本的 JavaBean 完成之前只可能由 EJB 完成的工做,取代了 EJB 臃腫和低效的開發模式。apache

在實際開發中,一般服務器端採用三層體系架構,分別爲表現層(web)、業務邏輯層(service)、持久層(dao)。Spring 對每一層都提供了技術支持,在表現層提供了與 Struts2 框架的整合,在業務邏輯層能夠管理事務和記錄日誌等,在持久層能夠整合 Hibernate 和 JdbcTemplate 等技術。編程

2 Spring 的優勢

Spring 框架的主要優勢具體以下所示:緩存

  • Spring 無處不在
    Spring靈活的庫受到全世界開發人員的信任。Spring天天爲數百萬終端用戶提供愉快的體驗——不管是流媒體電視、聯網汽車、在線購物,仍是其餘無數的創新解決方案。Spring也有來自全部科技領域的巨頭的貢獻,包括阿里巴巴、亞馬遜(Amazon)、谷歌、微軟(Microsoft)等等。安全

  • Spring 是易擴展的,方便集成各類優秀框架
    Spring靈活而全面的擴展集和第三方庫讓開發人員能夠構建幾乎任何能夠想象獲得的應用程序。在其核心,Spring框架的控制反轉(IoC)和依賴項注入(DI)特性爲普遍的特性和功能集提供了基礎。不管您是爲web構建安全的、反應性的、基於雲的微服務,仍是爲企業構建複雜的流數據流,Spring都有工具能夠提供幫助。服務器

  • 方便解耦,易於開發(簡化開發)
    Spring 就是一個大工廠,能夠將全部對象的建立和依賴關係的維護交給 Spring 管理。微信

  • Spring 速度快
    Spring 的工程師很是關心性能。在 Spring 中,默認狀況下,您會注意到快速啓動、快速關閉和優化執行。Spring 項目也愈來愈多地支持反應式(非阻塞)編程模型,以得到更高的效率。開發人員的生產力是 Spring 的超能力。與其餘競爭範例相比,Spring Boot 幫助開發人員輕鬆構建應用程序,並且工做量要少得多。嵌入式 web 服務器、自動配置和「胖罐」幫助您快速入門,而 Spring DevTools 中的 LiveReload 等創新意味着開發人員能夠比之前更快地迭代。您甚至能夠在幾秒鐘內啓動一個新的 Spring 項目,Spring Initializr 位於 start. Spring .io。

  • Spring 是安全的
    Spring在快速和負責地處理安全問題方面有可靠的記錄。Spring提交者與安全專業人員一塊兒工做,修補和測試任何報告的漏洞。第三方依賴關係也被密切監視,並按期發佈更新,以幫助儘量地保證數據和應用程序的安全性。此外,Spring Security使您更容易與行業標準的安全方案集成,並交付默認安全的可靠解決方案。

  • Spring 社區很龐大,備受支持
    Spring 社區是一個龐大的、全球性的、多樣化的社區,跨越了全部年齡和能力的人,從徹底的初學者到經驗豐富的專業人士。不管你在旅途的哪一個地方,你均可以找到你須要的支持和資源來幫助你進入下一個階段:快速入門、指南和教程、視頻、聚會、支持,甚至是正式的培訓和認證。

Spring 框架的其餘優勢具體以下所示:

  • 方便程序的測試
    Spring 支持 JUnit4,能夠經過註解方便地測試 Spring 程序。
  • AOP 編程的支持
    Spring 提供面向切面編程,能夠方便地實現對程序進行權限攔截和運行監控等功能。
  • 聲明式事務的支持
    只須要經過配置就能夠完成對事務的管理,而無須手動編程。

3 Spring 的應用領域

Spring 能夠應用於微服務(Microservices)、響應式編程(Reactive)、雲(Cloud)、網絡應用(Web app)、無服務器(Serverless)、事件驅動(Event Driven)、批處理(Batch)等任何 Java 應用的開發中。

4 Spring 體系結構

4.1 Spring 體系結構概述

Spring 框架採用分層架構,根據不一樣的功能被劃分紅了多個模塊,這些模塊大致可分爲 Data Access/Integration 層Web 層AOP 層Aspects 層Instrumentation 層Messaging 層Core Container 層Test 層,這些模塊能夠知足一切企業級應用開發的需求,在開發過程當中能夠根據需求有選擇性地使用所須要的模塊。

Spring 體系結構圖以下所示。
在這裏插入圖片描述

4.2 各個模塊介紹

(1)Data Access/Integration(數據訪問/集成)層

數據訪問/集成層包括 JDBC、ORM、OXM、JMS 和 Transactions 模塊,具體介紹以下所示:

  • JDBC 模塊:提供了一個 JDBC 的抽象層,大幅度減小了在開發過程當中對數據庫操做的代碼。
  • ORM 模塊:對流行的對象關係映射 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的集成層。
  • OXM 模塊:提供了一個支持對象/XML 映射的抽象層實現,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
  • JMS 模塊:指 Java 消息服務,包含的功能爲生產和消費的信息。
  • Transactions 事務模塊:支持編程和聲明式事務管理實現特殊接口類,併爲全部的 POJO。

(2)Web 層

Spring 的 Web 層包括 Web、Servlet、Struts 和 Portlet 模塊,具體介紹以下所示:

  • Web 模塊:提供了基本的 Web 開發集成特性,例如多文件上傳功能、使用的 Servlet 監聽器的 IoC 容器初始化以及 Web 應用上下文。
  • Servlet 模塊:包括 Spring 模型—視圖—控制器(MVC)實現 Web 應用程序。
  • Struts 模塊:包含支持類內的 Spring 應用程序,集成了經典的 Struts Web 層。
  • Portlet 模塊:提供了在 Portlet 環境中使用 MV C實現,相似 Web-Servlet 模塊的功能。

(3)Core Container(核心容器)層

Spring 的核心容器是其餘模塊創建的基礎,由 Beans 模塊、Core 核心模塊、Context 上下文模塊和 Expression Language 表達式語言模塊組成,具體介紹以下所示:

  • Beans 模塊:提供了 BeanFactory,是工廠模式的經典實現(很成熟的實現),Spring 將管理對象稱爲 Bean。
  • Core 核心模塊:提供了 Spring 框架的基本組成部分,包括 IoC 和 DI 功能。
  • Context 上下文模塊:創建在覈心和 Beans 模塊的基礎之上,它是訪問定義和配置任何對象的媒介。ApplicationContext 接口是上下文模塊的焦點。
  • Expression Language 模塊:是運行時查詢和操做對象圖的強大的表達式語言。

(4)其餘模塊

Spring的其餘模塊還有 AOP、Aspects、Instrumentation 以及 Test 模塊,具體介紹以下所示:

  • AOP 模塊:提供了面向切面編程實現,容許定義方法攔截器和切入點,將代碼按照功能進行分離,以下降耦合性。
  • Aspects 模塊:提供與 AspectJ 的集成,是一個功能強大且成熟的面向切面編程(AOP)框架。
  • Instrumentation 模塊:提供了類工具的支持和類加載器的實現,能夠在特定的應用服務器中使用。
  • Test 模塊:支持 Spring 組件,使用 JUnit 或 TestNG 框架的測試。

5 Spring 目錄結構

5.1 Spring 框架下載

目前 Spring 框架的最新版本是5.2.6,能夠去官網下載

官網下載地址:

https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework/spring/5.2.6.RELEASE/spring-5.2.6.RELEASE-dist.zip

以下圖所示,點擊Download下載名稱爲 spring-5.2.6.RELEASE-dist.zip 的壓縮包。

在這裏插入圖片描述

5.2 Spring 框架目錄結構介紹

下載完成後,解壓文件 spring-5.2.6.RELEASE-dist.zip能夠獲得spring-framework-5.2.6.RELEASE文件夾,以下圖所示。
在這裏插入圖片描述

打開spring-framework-5.2.6.RELEASE文件夾,能夠看到以下圖所示內容。
在這裏插入圖片描述

對上圖中的目錄說明,

  • docs目錄:Spring 的 API 文檔和開發規範。
  • libs目錄:開發須要的 JAR 包和源碼包。
  • schema目錄:開發所須要的 schema 文件,在這些文件中定義了 Spring 相關配置文件的約束。

6 Spring 框架的四個基礎 JAR 包

libs 目錄中,包含了 Spring 框架提供的全部 JAR 文件,其中有四個 JAR 文件是 Spring 框架的基礎包,分別對應 Spring 容器的四個模塊,具體以下所示:

  • spring-beans-5.2.6.RELEASE.jar:全部應用都要用到的,它包含訪問配置文件、建立和管理 bean 以及進行 Inversion of Control(IoC)或者 Dependency Injection(DI)操做相關的全部類。
  • spring-context-5.2.6.RELEASE.jar:Spring 提供在基礎 IoC 功能上的擴展服務,此外還提供許多企業級服務的支持,如郵件服務、任務調度、JNDI 定位、EJB 集成、遠程訪問、緩存以及各類視圖層框架的封裝等
  • spring-core-5.2.6.RELEASE.jar:包含 Spring 框架基本的核心工具類,Spring 其餘組件都要用到這個包中的類,是其餘組件的基本核心。
  • spring-expression-5.2.6.RELEASE.jar:定義了 Spring 的表達式語言。

7 使用 Spring 框架時,必須導入的 JAR 包

在使用 Spring 框架開發時,除了 Spring 自帶的 JAR 包之外,還須要一個第三方 JAR 包 commons-logging-1.2.jar 處理日誌信息。

也就是說在使用 Spring 框架時,咱們至少要將 Spring 框架的四個基礎 JAR 包以及commons-logging-1.2.jar包複製到項目的 libs 目錄,併發布到類路徑中便可。以下圖所示:

在這裏插入圖片描述

8 文章其餘地址

8.1 微信公衆號:碼農阿杰

8.2 CSDN 博客

9 參考資料地址

9.1 spring

9.2 Artifact Repository Browser

9.3 Apache Commons

相關文章
相關標籤/搜索