Spring是什麼?有哪些優點?體系結構是怎樣的?框架包的下載

Spring是什麼?

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

在實際開發中,通常服務器端在採用三層體系架構,分別爲表示層(Web)、業務邏輯層(Service)、持久層(Dao), Spring對每一層都提供了技術支持。

表示層 Spring MVC在表示層提供了與Struts等框架的整合
業務邏輯層 Spring的IoC在業務邏輯層可以管理事務、記錄日誌等
持久層 Spring的JDBC、ORM、等持久層框架在持久層可以整合Hibernate、JdbcTemplate等技術

Spring有哪些優點?

1.非侵入式設計
非侵入式:遠程調試 而不植入,spring不再用new的方式來創建對象,而是使用依賴注入的方式。控制反轉將對象的創建交給了spring,簡化了開發,降低了代碼之間的耦合性和侵入性。

2.方便解耦、簡化開發
Spring 就是一個大工廠,使用Spring的IOC容器可以將所有對象的創建和依賴關係的維護工作都交給 Spring 容器管理,大大地降低了組件之間的耦合性。

3.支持 AOP
Spring提供了對AOP的支持,它允許將一些通用任務,如安全、事物、日誌等進行集中式處理,從而提高了程序的複用性。

4.支持聲明式事務處理
只需要通過配置就可以完成對事物的管理,而無須手動編程。

5.方便程序的測試
Spring提供了對Junit4的支持,可以通過註解方便的測試Spring程序。

6.對主流的框架提供了很好的集成支持
Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如Struts、Hibernate、MyBatis、Quartz等)的直接支持。

7.降低Jave EE API的使用難度
Spring對Java EE開發中非常難用的一些API(如JDBC、JavaMail等),都提供了封裝,使這些API應用難度大大降低。

8.Spring DI機制降低了業務對象替換的複雜性。

Spring的體系結構

在這裏插入圖片描述

一、Core Container (核心容器)

Spring 的核心容器是其他模塊建立的基礎,它主要由 Beans 模塊、 Core 模塊 、Context模塊Context-support 模塊和 SpEL ( Spring Expression Language , Spring 表達式語言)模塊組成。

  • Beans 模塊:提供了BeanFactory ,是工廠模式的經典實現,Spring將管理對象稱爲Bean。
  • Core 核心模塊:提供了Spring框架的基本組成部分,包括IoC和DI功能。
  • Context上下文模塊:建立在Core和Beans模塊的基礎之上,它是訪問定義和配置的任何對象的媒介。
  • SpEL 模塊:Spring3.0後新增的模塊,它提供了 Spring Expression Language
    支持,是運行時查詢和操作對象圖的強大的表達式語言。

二、Data Access/lntegration (數據訪問/集成)

數據訪問/集成層包括 JDBC ORM OXM JMS和Transactions 模塊。

  • JDBC 模塊:提供了一個 JDBC的抽象層,大幅度地減少了在開發過程中對數據庫操作的編碼。
  • ORM 模塊:對流行的對象關係映射 API ,包括 JPA、JDO和Hibernate 提供了集成層支持。
  • OXM 模塊:提供了一個支持對象/XML 映射的抽象層實現,如 JAXB、Castor、XMLBeans、JiBX 和XStream。
  • JMS 模塊:指 Java 消息傳遞服務,包含使用和產生信息的特性,自4.1版本後支持與Spring-message 模塊的集成。
  • Transactions 事務模塊:支持對實現特殊接口以及所有 POJO 類的編程和聲明式的事務管理。

三、Web

Spring Web 層包括 WebSocket、Servlet、Web和Portlet 模塊。

  • WebSocket模塊: Spring 4.0 以後新增的模塊,它提供了 WebSocket和SockJS 的實現,以及對STOMP的支持。
  • Servlet模塊:也稱爲 Spring-webmvc 模塊,包含了 Spring 的模型一視圖一控制器(MVC)和REST Web Services 實現的 Web 應用程序。
  • Web模塊:提供了基本的 Web 開發集成特性,例如: 多文件上傳功能 使用 Servlet聽器來初始化loC 容器以及 Web應用上下文。
  • Portlet模塊:提供了在 Portlet 環境中使用 MVC 實現,類似 Servlet 模塊的功能。

四、其他模塊

Spring 的其他模塊還有 AOP、Aspects、Instrumentation 以及 Test 模塊。

  • AOP 模塊:提供了面向切面編程實現,允許定義方法攔截器和切入點,將代碼按照功能進行分離,以降低耦合性。
  • Aspects 模塊:提供了與 AspectJ 的集成功能, AspectJ 是一個功能強大且成熟的面向切面編程 (AOP) 框架。
  • Instrumentation模塊:提供了類工具的支持和類加載器的實現,可以在特定的應用服務器中使用。
  • Messaging 模塊: Spring 4.0 以後新增的模塊,它提供了對消息傳遞體系結構和協議 的支持。
  • Test 模塊:提供了對單元測試和集成測試的支持。

Spring框架包、第三方依賴包

Spring開發所需的jar包分爲兩個部分:Spring框架包和第三方依賴包。

Spring框架包:下載地址
在libs目錄中有四個Spring的基礎包,分別對應Spring核心容器的四個模塊。

  • spring-core-4.3.6.RELEASE.jar
    包含Spring框架的核心工具類,Spring其它組件都要用到這個包裏的類。

  • spring-beans-4.3.6.RELEASE.jar
    所有應用都要用到的JAR包,它包含訪問配置文件、創建和管理Bean以及進行控制反轉或者依賴注入操作相關的所有類。

  • spring-context-4.3.6.RELEASE.jar
    提供了在基礎IoC功能上的擴展服務,還提供了許多企業級服務的支持。

  • spring-expression-4.3.6.RELEASE.jar
    定義了Spring的表達式語言。

第三方依賴包:下載地址
在使用Spring開發時,除了要使用自帶的JAR包外,Spring的核心容器還需要依賴commons.logging的JAR包。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章