功能划分
spring-aop:面向切面编程
spring-aspects:Spring 对 aspect 的支持
spring-beans & spring-context:Spring IoC 实现,spring-beans 依赖查找、依赖注入,
spring-beans & spring-context:都需要 spring-core 支持,spring-context 事件驱动、注解驱动,模块驱动
spring-context-indexer:
spring-context-support:
spring-core:包含 Java 语法特性支持,Spring 基础 API(资源查找、泛型处理)
spring-expression:Spring 表达式,Spring 3 开始有,类似 JSP 里的 EL 语言
spring-instrument:Spring 2 对 Java 装配,对 Java agent 的支持
spring-jcl:Spring 5 开始,日志框架,统一 Spring 的日志管理,不再使用外部日志框架
spring-jdbc:Spring 对 JDBC 整合
spring-jms:对 Java Message Service 支持,使用大量的 JMS API 来实现
spring-messaging:统一消息服务的实现
spring-orm:对 Hibernate、JPA 等 ORM 框架的整合
spring-oxm:XML 编列,XML 中的序列和反序列化
spring-test:Spring 的测试(Mock 对象、TestContext、Spring MVC、WebClient 的测试)
spring-tx:transaction,Spring 的事务抽象(借鉴了 JDBC 中的一部分事务实现以及 Java EE 尤其是 EJB 的事务实现,做了统一封装)
spring-web:
spring-webflux:
spring-webmvc:
spring-websocket:
Spring 对 web 有四个实现的可能原因:想统一 web。
web 在 Java EE 中 web 有两种实现:传统的 Servlet API(底层 API 接口)实现和 JAX-RS(Java 标准的注解的方式驱动开发 REST 服务)。
由于 Spring 在上述两者的基础上进行借鉴,会发现 webflux 和 webmvc 的注解和 Java 注解像。
spring-websocket 在 websocket 的基础上做了封装,用来管理 Session 和消息