Spring 模块介绍

Spring 是一个分层架构的轻量级框架,其模块划分为多个独立 Jar 包,方便按需引入。核心模块如下:

1. Core Container(核心容器)

  • spring-core:框架基础,提供 IoC、依赖注入、资源访问等核心工具类。

  • spring-beans:管理 Bean 的定义、创建及解析(如 BeanFactory)。

  • spring-context:在 core 和 beans 基础上扩展,提供 ApplicationContext、事件传播、国际化等。

  • spring-context-support:支持第三方库集成(如 EhCache、Quartz、Mail 等)。

  • spring-expression:Spring Expression Language (SpEL),支持运行时查询和操作对象图。

2. AOP 与 Aspects

  • spring-aop:基于 JDK 动态代理或 CGLIB 实现面向切面编程。

  • spring-aspects:与 AspectJ 集成,提供更强大的 AOP 功能。

3. Data Access / Integration(数据访问与集成)

  • spring-jdbc:简化 JDBC 操作,包含 JdbcTemplate、事务管理等。

  • spring-tx:声明式事务管理,提供事务抽象及实现。

  • spring-orm:集成 Hibernate、JPA、MyBatis 等 ORM 框架。

  • spring-oxm:对象/XML 映射,支持 JAXB、XStream 等。

  • spring-jms:JMS(消息服务)支持,简化消息发送接收。

4. Web 模块

  • spring-web:提供基础的 Web 特性,如 Multipart 上传、ServletContext 监听器等。

  • spring-webmvc:基于 MVC 模式的 Web 层实现(Spring MVC)。

  • spring-webflux:响应式 Web 框架(非阻塞,基于 Reactor)。

  • spring-websocket:WebSocket 支持,实现全双工通信。

5. Test 模块

  • spring-test:提供单元测试和集成测试支持(Mock 对象、TestContext 框架等)。

6. Instrumentation 与 Messaging(可选)

  • spring-instrument:用于类加载器级别的代理支持(如 JPA 字节码增强)。

  • spring-messaging:基于消息的编程模型(如 WebSocket 的子协议 STOMP)。

模块依赖图(简化)

bash 复制代码
spring-core ← spring-beans ← spring-context → spring-webmvc
   ↑           ↑               ↑
   └───────────┴───────────────┘
            spring-aop → spring-tx → spring-orm

快速选择建议

  • 基础 IoC :spring-context(自动依赖 spring-core、spring-beans)

  • AOP :spring-aop + spring-aspects

  • 数据库操作 :spring-jdbc + spring-tx

  • Web 开发 :spring-webmvc(包含 web 模块)

实际使用时推荐通过构建工具(Maven/Gradle)引入 Spring Boot Starter 或按依赖关系导入所需模块。

相关推荐
2301_780789663 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设4 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒4 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
步行cgn4 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川4 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵4 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David5 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1005 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin6 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质6 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring