我在维护一个老的 java web 项目时,发现它并没有使用 spring boot,而是直接基于 spring 4.x 搭建的。很多新同学刚接触这类项目时,常常会搞不清楚:到底需要哪些 spring 的 jar 包才能让应用跑起来?
本文就结合我在项目中踩过的坑,总结了 spring 核心 jar 包的作用和最小依赖组合,希望能帮到正在学习或维护 spring 的同学。
一、spring 框架的模块化设计
spring 框架采用模块化设计,将不同功能拆分为多个 jar 包。这样开发者可以根据实际需求来选择依赖,而不是“全量引入”。
spring 模块主要包括:
- 核心容器:spring-core、spring-beans、spring-context、spring-expression
- aop 支持:spring-aop、spring-aspects
- web 开发:spring-web、spring-webmvc
- 数据访问:spring-jdbc、spring-tx
- 测试支持:spring-test
这种设计让 spring 既可以作为一个完整框架使用,也能作为轻量化工具引入。
二、常用 jar 包与功能对照
jar 包 | 功能描述 | 使用场景 |
---|---|---|
spring-core.jar | 提供核心工具类(反射、资源加载、类型转换等) | 所有模块依赖的基础 |
spring-beans.jar | bean 定义与依赖注入 | ioc 容器的核心 |
spring-context.jar | applicationcontext、事件传播、国际化 | 容器扩展功能 |
spring-expression.jar | spring 表达式语言(spel) | xml 和注解配置动态属性 |
spring-aop.jar | aop 支持(jdk 动态代理、cglib) | 事务、日志、权限拦截 |
spring-web.jar | 提供 web 集成功能 | servlet 环境集成 |
spring-webmvc.jar | spring mvc 框架实现 | dispatcherservlet、控制器注解 |
spring-jdbc.jar | jdbc 封装,简化数据库访问 | dao 层开发 |
spring-tx.jar | 事务管理支持 | 与数据库交互的业务逻辑 |
spring-test.jar | 集成 junit,支持单元测试 | 单元与集成测试 |
三、spring 最小可运行依赖
如果你只想运行一个最简单的 spring ioc 容器,至少需要以下 jar 包:
- spring-core.jar
- spring-beans.jar
- spring-context.jar
- spring-expression.jar
这四个是 spring 容器最小依赖组合。
四、示例:最小化 spring 应用
下面用一个简单示例展示如何使用这些 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 包,这个程序就可以正常运行。
五、实践经验与建议
- 如果是 web 项目,还需要引入
spring-web
和spring-webmvc
。 - 如果涉及数据库事务,需要额外加上
spring-jdbc
和spring-tx
。 - 在 团队项目 中,建议使用 maven 或 gradle 管理依赖,避免手动拷贝 jar 包导致版本混乱。
六、总结与延伸阅读
本文从我的实际项目经验出发,介绍了 spring 框架需要的核心 jar 包 以及最小依赖组合,并用示例展示了 ioc 容器的运行方式。希望能帮到刚接触 spring 的同学,避免因为 jar 包缺失而浪费时间。
到此这篇关于spring 框架需要的 jar 包解析与使用小结的文章就介绍到这了,更多相关spring框架jar包使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论