Spring 框架需要的 jar 包解析與使用小結(jié)
我在維護一個老的 Java Web 項目時,發(fā)現(xiàn)它并沒有使用 Spring Boot,而是直接基于 Spring 4.x 搭建的。很多新同學(xué)剛接觸這類項目時,常常會搞不清楚:到底需要哪些 Spring 的 jar 包才能讓應(yīng)用跑起來?
本文就結(jié)合我在項目中踩過的坑,總結(jié)了 Spring 核心 jar 包的作用和最小依賴組合,希望能幫到正在學(xué)習(xí)或維護 Spring 的同學(xué)。
一、Spring 框架的模塊化設(shè)計
Spring 框架采用模塊化設(shè)計,將不同功能拆分為多個 jar 包。這樣開發(fā)者可以根據(jù)實際需求來選擇依賴,而不是“全量引入”。
Spring 模塊主要包括:
- 核心容器:spring-core、spring-beans、spring-context、spring-expression
- AOP 支持:spring-aop、spring-aspects
- Web 開發(fā):spring-web、spring-webmvc
- 數(shù)據(jù)訪問:spring-jdbc、spring-tx
- 測試支持:spring-test
這種設(shè)計讓 Spring 既可以作為一個完整框架使用,也能作為輕量化工具引入。
二、常用 jar 包與功能對照
| jar 包 | 功能描述 | 使用場景 |
|---|---|---|
| spring-core.jar | 提供核心工具類(反射、資源加載、類型轉(zhuǎn)換等) | 所有模塊依賴的基礎(chǔ) |
| spring-beans.jar | Bean 定義與依賴注入 | IoC 容器的核心 |
| spring-context.jar | ApplicationContext、事件傳播、國際化 | 容器擴展功能 |
| spring-expression.jar | Spring 表達式語言(SpEL) | XML 和注解配置動態(tài)屬性 |
| spring-aop.jar | AOP 支持(JDK 動態(tài)代理、CGLIB) | 事務(wù)、日志、權(quán)限攔截 |
| spring-web.jar | 提供 Web 集成功能 | Servlet 環(huán)境集成 |
| spring-webmvc.jar | Spring MVC 框架實現(xiàn) | DispatcherServlet、控制器注解 |
| spring-jdbc.jar | JDBC 封裝,簡化數(shù)據(jù)庫訪問 | DAO 層開發(fā) |
| spring-tx.jar | 事務(wù)管理支持 | 與數(shù)據(jù)庫交互的業(yè)務(wù)邏輯 |
| spring-test.jar | 集成 JUnit,支持單元測試 | 單元與集成測試 |
三、Spring 最小可運行依賴
如果你只想運行一個最簡單的 Spring IoC 容器,至少需要以下 jar 包:
- spring-core.jar
- spring-beans.jar
- spring-context.jar
- spring-expression.jar
這四個是 Spring 容器最小依賴組合。
四、示例:最小化 Spring 應(yīng)用
下面用一個簡單示例展示如何使用這些 jar 包啟動一個 Spring IoC 容器。
beans.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 定義一個簡單的 Bean -->
<bean id="helloService" class="com.demo.HelloService"/>
</beans>HelloService.java
package com.demo;
public class HelloService {
public void sayHello() {
System.out.println("Hello, Spring!");
}
}Main.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("beans.xml");
HelloService service = context.getBean("helloService", HelloService.class);
service.sayHello(); // 輸出:Hello, Spring!
}
}只要引入上面提到的 四個核心 jar 包,這個程序就可以正常運行。
五、實踐經(jīng)驗與建議
- 如果是 Web 項目,還需要引入
spring-web和spring-webmvc。 - 如果涉及數(shù)據(jù)庫事務(wù),需要額外加上
spring-jdbc和spring-tx。 - 在 團隊項目 中,建議使用 Maven 或 Gradle 管理依賴,避免手動拷貝 jar 包導(dǎo)致版本混亂。
六、總結(jié)與延伸閱讀
本文從我的實際項目經(jīng)驗出發(fā),介紹了 Spring 框架需要的核心 jar 包 以及最小依賴組合,并用示例展示了 IoC 容器的運行方式。希望能幫到剛接觸 Spring 的同學(xué),避免因為 jar 包缺失而浪費時間。
到此這篇關(guān)于Spring 框架需要的 jar 包解析與使用小結(jié)的文章就介紹到這了,更多相關(guān)spring框架jar包使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shiro與spring集成基礎(chǔ)Hello案例詳解
這篇文章主要介紹了shiro與spring集成基礎(chǔ)Hello案例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
redis setIfAbsent和setnx的區(qū)別與使用說明
這篇文章主要介紹了redis setIfAbsent和setnx的區(qū)別與使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

