Spring知識篇1:對Spring框架的基本認識

2020-08-11 16:34:34

1. Java Spring框架是什麼?有哪些好處?

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

  • 在實際開發中,通常伺服器端採用三層體系架構,分別爲表現層(web)、業務邏輯層(service)、持久層(dao)。

  • Spring 對每一層都提供了技術支援,在表現層提供了與 Struts2 框架的整合,在業務邏輯層可以管理事務和記錄日誌等,在持久層可以整合 Hibernate 和 JdbcTemplate 等技術。

  • Spring 有簡單、可測試和松耦合等特點,不僅可以用於伺服器端的開發,也可以應用到任何Java應用的開發中。它的主要優點如下:
    (1)方便解耦,簡化開發
    Spring就是一個大廠,可以將所有物件的建立和依賴關係的維護交給Spring管理。
    (2)方便整合各種優秀框架‘
    Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支援。
    (3)降低 Java EE API 的使用難度
    Spring 對 Java EE 開發中非常難用的一些 API(JDBC、JavaMail、遠端呼叫等)都提供了封裝,使這些 API 應用的難度大大降低。
    (4)方便程式的測試
    Spring 支援 JUnit4,可以通過註解方便地測試 Spring 程式。
    (5)AOP 程式設計的支援
    Spring 提供面向切面程式設計,可以方便地實現對程式進行許可權攔截和執行監控等功能。
    (6)宣告式事務的支援
    只需要通過設定就可以完成對事務的管理,而無須手動程式設計。

2. Spring體系結構及各個模組的介紹

  • Spring 框架採用分層架構,根據不同的功能被劃分成了多個模組,這些模組大體可分爲 Data Access/Integration、Web、AOP、Aspects、Messaging、Instrumentation、Core Container 和 Test,如圖所示。
    在这里插入图片描述
  • 各個模組的介紹
  1. 數據存取/整合層包括JDBC、ORM、OXM、JMS和Transactions 模組。
    (1)JDBC 模組:提供了一個 JDBC 的抽象層,大幅度減少了在開發過程中對數據庫操作的編碼。
    (2)ORM 模組:對流行的物件關係對映 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的整合層。
    (3)OXM 模組:提供了一個支援物件/XML 對映的抽象層實現,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
    (4)JMS 模組:指 Java 訊息服務,包含的功能爲生產和消費的資訊。
    (5)Transactions 事務模組:支援程式設計和宣告式事務管理實現特殊介面類,併爲所有的 POJO。

  2. Web 模組
    Spring 的 Web 層包括 Web、Servlet、Struts 和 Portlet 元件。
    (1)Web 模組:提供了基本的 Web 開發整合特性,例如多檔案上傳功能、使用的 Servlet 監聽器的 IoC 容器初始化以及 Web 應用上下文。
    (2)Servlet模組:包括 Spring 模型—檢視—控制器(MVC)實現 Web 應用程式。
    (3)Struts 模組:包含支援類內的 Spring 應用程式,整合了經典的 Struts Web 層。
    (4)Portlet 模組:提供了在 Portlet 環境中使用 MV C實現,類似 Web-Servlet 模組的功能。

  3. Core Container(核心容器)
    Spring 的核心容器是其他模組建立的基礎,由 Beans 模組、Core 核心模組、Context 上下文模組和 Expression Language 表達式語言模組組成。
    (1)Beans 模組:提供了 BeanFactory,是工廠模式的經典實現,Spring 將管理物件稱爲 Bean。
    (2)Core 核心模組:提供了 Spring 框架的基本組成部分,包括 IoC 和 DI 功能。
    (3)Context 上下文模組:建立在覈心和 Beans 模組的基礎之上,它是存取定義和設定任何物件的媒介。ApplicationContext 介面是上下文模組的焦點。
    (4)Expression Language 模組:是執行時查詢和操作物件圖的強大的表達式語言。

  4. 其他模組
    Spring的其他模組還有 AOP、Aspects、Instrumentation 以及 Test 模組。
    (1)AOP 模組:提供了面向切面程式設計實現,允許定義方法攔截器和切入點,將程式碼按照功能進行分離,以降低耦合性。
    (2)Aspects 模組:提供與 AspectJ 的整合,是一個功能強大且成熟的面向切面程式設計(AOP)框架。
    (3)Instrumentation 模組:提供了類工具的支援和類載入器的實現,可以在特定的應用伺服器中使用。
    (4)Test 模組:支援 Spring 元件,使用 JUnit 或 TestNG 框架的測試。