Spring 生态常用术语、缩写与核心接口速查。本目录下所有笔记中出现的缩写均以此为准。
相关笔记:Spring 容器启动流程源码分析 · Spring 三级缓存与循环依赖 · 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)