首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

深度解析 Spring 模塊化打包機制:按需引入,輕量級部署

     編輯:Java 相關知識

為什麼不打包成單一 JAR?

Spring 發布包不僅提供單一 spring.jar(含幾乎所有類),還拆分為 8 個獨立模塊 JAR(未來可能更多),讓開發者精準選擇所需特性,避免引入無用類。

兩種發布形式對比

1. 完整發布包:spring.jar

  • 包含 Spring main 源碼樹中幾乎所有類(除 mock 類)。
  • Mock 類隨 Spring 發布用於輔助測試,發布應用時無需分發,故單獨打包——明智決策。
  • 適用場景:構建全棧 Web 應用、全程使用 Spring、不想維護多文件依賴。

2. 模塊發布包:8 個專用 JAR

JAR 文件核心內容適用場景
spring-aop.jarAOP 特性類、聲明式事務管理依賴使用 AOP 或聲明式事務時必選
spring-context.jarApplicationContext、EJB/JNDI/郵件整合、遠程調用、模板引擎整合、驗證基類需上下文特性、企業級整合時
spring-core.jar核心容器:配置訪問、Bean 創建管理、DI 操作、通用工具類所有應用必需;僅需基本 DI 時此包足夠
spring-dao.jarDAO 支持基類、JDBC 數據訪問、事務抽象層數據訪問層;聲明式事務仍需 spring-aop.jar
spring-mock.jar完整 Mock 類庫(HttpServletRequest/Response 等)單元測試環境,Web 應用測試極大簡化
spring-orm.jarHibernate/iBATIS/JDO 整合擴展ORM 整合;強依賴 spring-dao.jar
spring-web.jarWeb 核心類:自動載入 ApplicationContext、Struts 整合、文件上傳、解析工具Web 應用基礎
spring-webmvc.jarSpring MVC 框架完整類使用 Spring MVC 時;獨立 MVC 框架則無需

如何選擇發布包?決策指南

  1. 全棧 Web 應用 + 全程 Spring → 直接用 spring.jar,省心。
  2. 僅需基本 DI 容器 → 只引 spring-core.jar,極輕量。
  3. 極致控制體積 → 精選包含所需特性的模塊 JAR(注意粒度非極細,仍含少量無用類)。
  4. 核心原則:準確識別項目所需 Spring 依賴,合者納之,余者棄之。節省空間的重頭戲在精準依賴分析,而非單純拆包。

演進趨勢

未來每個 ORM 工具(Hibernate/iBATIS/JDO)可能進一步拆分為獨立 JAR,使用 iBATIS 時無需引入 Hibernate/JDO 相關類,粒度更細、體積更優。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved