Spring 模块体系

本文详细解读Spring 4和5的核心模块结构,包括CoreContainer、AOP与Instrumentation,以及各模块间的依赖关系。掌握Spring依赖体系,助您高效配置项目依赖并避免冗余。
摘要由CSDN通过智能技术生成

转载(侵删):於清樂的碎碎念 Spring 笔记(二)模块体系

前言

在 Spring Boot 出现之前,开发一个 Spring 项目总会需要添加很多依赖。但是我们在配置依赖的时候,往往不太明确各依赖的具体作用,经常是从网上复制粘贴。
为何需要添加这些依赖?各依赖之间有何关系?某个依赖是否可以省略?要回答这些问题,就有必要了解 Spring 的依赖体系。

搞清了这些问题后,下次配置依赖时,就能很清楚的知道自己需要添加哪些依赖了。

Spring Framwork Modules

这里仅针对 Spring 4 和 Spring 5

Spring 框架被分解成 20 个左右的模块,这些模块又按功能分成多个类别:
在这里插入图片描述

Core Container

核心容器由 spring-core, spring-beans, spring-context, spring-context-support, 和 spring-expression 组成
在这里插入图片描述

在这里插入图片描述

spring-core 和 spring-beans
spring-core 和 spring-beans 是 Spring 的基石,提供了基本的 DI (依赖注入)功能。
但是我们基本不需要添加这两个依赖,因为我们通常都会使用更上层的模块,而这些上层模块依赖了它们,我们引入上层模块后,依赖管理工具会自动链入下层依赖。

spring-expression
spring-expression 定义了强大的 Spring 表达式语言,用于在运行时查询和操作对象。

spring-context 和 spring-context-support
spring-context 建立在 core 和 beans 之上,提供了更高层的 API。其核心是 ApplicationContext。
spring-context-support 则是为将第三方库整合进 Spring 应用上下文 提供支持。

普通的 Spring 应用只需要引入 spring-context 模块,从上面的依赖关系图就能知道,四个核心模块都是它的依赖。

AOP 和 Instrumentation
这一部分包含下列模块:spring-aop, spring-aspects, spring-instrument, spring-instrument-tomcat

spring-aop 提供了面向切面编程的实现,它允许你定义拦截器 (interceptors) 和 切点 (pointcuts),用以解耦(decouple) 关注点不同的代码。
spring-aspects 整合了 Java 最强大的一个 AOP 库:AspectJ.
spring-instrument 提供了用于某些应用程序服务器的类工具支持和类加载器实现.
spring-instrument-tomcat 是 Spring’s instrumentation agent for Tomcat.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值