Spring 生态常用术语、缩写与核心接口速查。本目录下所有笔记中出现的缩写均以此为准。
相关笔记:Spring-Framework/01 Spring 容器启动流程源码分析 · Spring-Framework/02 Spring 三级缓存与循环依赖 · Springboot/01 SpringBoot 启动流程源码分析
核心缩写
| 缩写 | 全称 | 说明 |
|---|
| IOC | Inversion of Control | 控制反转,对象创建和依赖管理由容器负责 |
| DI | Dependency Injection | 依赖注入,IOC 的具体实现方式 |
| AOP | Aspect-Oriented Programming | 面向切面编程,横切关注点(日志/事务/权限)的模块化 |
| MVC | Model-View-Controller | Spring Web 层的架构模式 |
| POJO | Plain Old Java Object | 普通 Java 对象,不继承特定框架类 |
| SPeL | Spring Expression Language | Spring 表达式语言,用于 @Value、@Conditional 等 |
| TX | Transaction | 事务,常见于 @Transactional、PlatformTransactionManager |
BeanFactory 相关
| 缩写 | 全称 | 触发时机 | 典型实现 |
|---|
| BPP | BeanPostProcessor | Bean 初始化前后(步骤⑥⑪) | AutowiredAnnotationBeanPostProcessor、AbstractAutoProxyCreator |
| BFPP | BeanFactoryPostProcessor | BeanDefinition 加载完成后(步骤⑤) | PropertySourcesPlaceholderConfigurer |
| BDRPP | BeanDefinitionRegistryPostProcessor | BFPP 之前执行,可新增 BeanDefinition(步骤⑤) | ConfigurationClassPostProcessor、MyBatis MapperScannerConfigurer |
| BF | BeanFactory | — | DefaultListableBeanFactory(最常用的完整实现) |
| AC | ApplicationContext | — | AnnotationConfigApplicationContext、AnnotationConfigServletWebServerApplicationContext |
执行顺序:BDRPP → BFPP → BPP(注册)→ Bean 实例化 → BPP(回调)
代理相关
| 缩写 | 全称 | 说明 |
|---|
| JDK Proxy | JDK Dynamic Proxy | 基于接口,java.lang.reflect.Proxy,目标类必须实现接口 |
| CGLIB | Code Generation Library | 基于继承,字节码生成子类,不要求接口,目标类不能是 final |
| APC | AbstractAutoProxyCreator | Spring AOP 的核心 BPP,在 postProcessAfterInitialization 生成代理 |
| CTW | Compile-Time Weaving | AspectJ 编译时织入,用 ajc 替代 javac,直接生成织入后的字节码;this 调用不失效 |
| PTW | Post-Compile Weaving | AspectJ 编译后织入,对已有 .class/jar 再次处理织入切面 |
| LTW | Load-Time Weaving | AspectJ 加载时织入,通过 -javaagent:aspectjweaver.jar 在类加载瞬间修改字节码;this 调用不失效,无需修改编译流程 |
配置与属性相关
| 缩写 | 全称 | 说明 |
|---|
| PS | PropertySource | 属性源,Spring Environment 的基本单元 |
| EPP | EnvironmentPostProcessor | SpringBoot 扩展点,prepareEnvironment 阶段修改属性源 |
| ACI | ApplicationContextInitializer | refresh() 前回调,可注册 PS 或激活 Profile |
| AL | ApplicationListener | 监听 ApplicationEvent 的观察者 |
生命周期相关
| 缩写 | 全称 | 说明 |
|---|
| SL | SmartLifecycle | 可控启停顺序的 Lifecycle,按 phase 值排序(小→先启动,大→先停止) |
| LC | LifecycleProcessor | 管理所有 Lifecycle Bean 的启动和停止 |
| STW | Stop-The-World | GC 暂停所有应用线程的阶段(JVM 层,非 Spring) |
三级缓存(循环依赖)
| 缩写/变量名 | 含义 |
|---|
singletonObjects | 一级缓存,完整 Bean |
earlySingletonObjects | 二级缓存,早期引用(可能是代理) |
singletonFactories | 三级缓存,ObjectFactory<?> |
earlyA / earlyB | 从三级缓存取出的早期引用,还未完成初始化 |
refresh() 步骤编号对照
本目录笔记中用①~⑫指代 AbstractApplicationContext#refresh() 的 12 个步骤:
| 编号 | 方法名 | 说明 |
|---|
| ① | prepareRefresh | 上下文状态初始化 |
| ② | obtainFreshBeanFactory | 获取/刷新 BeanFactory |
| ③ | prepareBeanFactory | 注册基础设施 BPP |
| ④ | postProcessBeanFactory | 子类扩展(Web scope 注册) |
| ⑤ | invokeBeanFactoryPostProcessors | 执行 BDRPP + BFPP |
| ⑥ | registerBeanPostProcessors | 注册所有 BPP |
| ⑦ | initMessageSource | 国际化 |
| ⑧ | initApplicationEventMulticaster | 事件广播器 |
| ⑨ | onRefresh | 子类扩展(SpringBoot 创建 Tomcat) |
| ⑩ | registerListeners | 注册 ApplicationListener |
| ⑪ | finishBeanFactoryInitialization | 实例化所有非懒加载 Bean |
| ⑫ | finishRefresh | 发布 ContextRefreshedEvent,开放端口 |
评论 (0)