Spring 筆記(二)模塊體系


前言

在 Spring Boot 出現之前,開發一個 Spring 項目總會需要添加很多依賴。但是我們在配置依賴的時候,往往不太明確各依賴的具體作用,經常是從網上復制粘貼。
為何需要添加這些依賴?各依賴之間有何關系?某個依賴是否可以省略?要回答這些問題,就有必要了解 Spring 的依賴體系。

搞清了這些問題后,下次配置依賴時,就能很清楚的知道自己需要添加哪些依賴了。

Spring Framwork Modules

這里僅針對 Spring 4 和 Spring 5

Spring 框架被分解成 20 個左右的模塊,這些模塊又按功能分成多個類別:
Overview of the Spring Framework

Core Container

核心容器由 spring-core, spring-beans, spring-context, spring-context-support, 和 spring-expression 組成

spring-core 和 spring-beans

spring-core 和 spring-beans 是 Spring 的基石,提供了基本的 DI (依賴注入)功能。
但是我們基本不需要添加這兩個依賴,因為我們通常都會使用更上層的模塊,而這些上層模塊依賴了它們,我們引入上層模塊后,依賴管理工具會自動鏈入下層依賴。

spring-expression

spring-expression 定義了強大的 Spring 表達式語言,用於在運行時查詢和操作對象。

spring-context 和 spring-context-support

spring-context 建立在 core 和 beans 之上,提供了更高層的 API。其核心是 ApplicationContext。
spring-context-support 則是為將第三方庫整合進 Spring 應用上下文 提供支持。

普通的 Spring 應用只需要引入 spring-context 模塊:

// gradle
implementation group: 'org.springframework', name: 'spring-context', version: '5.0.7.RELEASE'

從上面的依賴關系圖就能知道,四個核心模塊都是它的依賴。

AOP 和 Instrumentation

這一部分包含下列模塊:spring-aop, spring-aspects, spring-instrument, spring-instrument-tomcat

  1. spring-aop 提供了面向切面編程的實現,它允許你定義攔截器 (interceptors) 和 切點 (pointcuts),用以解耦(decouple) 關注點不同的代碼。
  2. spring-aspects 整合了 Java 最強大的一個 AOP 庫:AspectJ.
  3. spring-instrument 提供了用於某些應用程序服務器的類工具支持和類加載器實現.
  4. spring-instrument-tomcat 是 Spring’s instrumentation agent for Tomcat.

其他的見參考。。懶啊

參考


免責聲明!

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



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