Spring 核心机制
-
Spring Context -
Spring AOP -
Spring IOC -
Spring Core
(1)Spring Context
ApplicationContext的作用:
- 标示一个应用环境
- 利用
BeanFactory创建Bean对象 - 保存对象关系表
- 能够捕获各种事件
Context是一个 bean 关系的集合,又叫 IOC 容器
(2)AOP
允许程序通过分离的应用业务逻辑与系统级别服务
原理
通过动态代理。
1. JDK 动态代理
利用反射机制生成一个实现代理接口的匿名类
代理对象在程序运行时产生,而不是编译期
- 对代理对象的所有接口方法调用哦都会转发到
InvocationHandler.invoke() - 通过反射调用被拦截方法
-
Spring的 AOP 主要基于 JDK 的dynamic proxy,通过advisor实现链式的调用,通过cglib第三方法库也可以实现
事务管理抽象层建立在 AOP 基础上。
所以需要在方法上必须是公开的,
@Transactional
2. cglib
- 动态生成一个要代理的子类,在子类中采用方法拦截的技术 拦截所有父类方法的调用。
- 底层使用字节码处理框架
ASM,来转换字节码并生成新的类,不能对final 方法进行代理。
(3)IOC
依赖注入(DI)和 控制反转(IOC)是同一概念。
原理
通过 工厂 + 反射,将 bean 放在容器中,当想用某个 bean 的时候,只需要调用 getBean("beanID")方法。
(4)Core
core 是发现、建立和维护每个 bean 之间的关系所需要的一系列工具
core 定义了资源的访问方式,并由ResourceLoader接口完成资源加载
















