小册描述
目录
- AOP引入:OOP存在哪些局限性?
- AOP常见使用场景
- AOP概念:Aspect、Join Point和Advice等术语应该如何理解?
- Java AOP设计模式:代理、判断和拦截器模式
- Java AOP代理模式(Proxy):Java静态代理和动态代理的区别是什么?
- Java AOP判断模式(Predicate):如何筛选Join Point?
- Java AOP拦截器模式(Interceptor):拦截执行分别代表什么?
- Spring AOP 功能概述:核心特性、编程模型和使用限制
- Spring AOP编程模型:注解驱动、XML配置驱动和底层API
- Spring AOP设计目标:Spring AOP与 AOP框架之间的关系是竞争还是互补?
- Spring AOP Advice类型:Spring AOP丰富了哪些AOP Advice呢?
- Spring AOP代理实现:为什么Spring Framework选择三种不同AOP实现?
- JDK动态代理:为什么Proxy.newProxyInstance会生成新的字节码?
- CGLIB动态代理:为什么Java动态代理无法满足AOP的需要?
- AspectJ代理代理:为什么Spring推荐AspectJ注解?
- AspectJ基础:Aspect、Join Points、Pointcuts和Advice语法和特性
- AspectJ注解驱动:注解能完全替代AspectJ语言吗?
- Spring核心基础:《小马哥讲Spring核心编程思想》还记得多少?
- @AspectJ注解驱动
- 编程方式创建 @AspectJ代理
- XML配置驱动 - 创建AOP代理
- 标准代理工厂API - ProxyFactory
- @AspectJ Pointcut指令与表达式:为什么Spring只能有限支持?
- XML配置Pointcut
- API实现Pointcut
- @AspectJ拦截动作:@Around与@Pointcut有区别吗?
- XML配置Around Advice
- API实现Around Advice
- @AspectJ前置动作:@Before与@Around谁优先级执行?
- XML配置Before Advice
- API实现Before Advice
- @AspectJ后置动作 - 三种After Advice之间的关系?
- XML配置三种After Advice
- API实现三种After Advice
- 自动动态代理
- 替换TargetSource
- Spring AOP API整体设计
- 接入点接口 - Joinpoint
- Joinpoint条件接口 - Pointcut
- Pointcut操作 - ComposablePointcut
- Pointcut便利实现
- Pointcut AspectJ实现 - AspectJExpressionPointcut
- Joinpoint执行动作接口 - Advice
- Joinpoint Before Advice标准实现
- Joinpoint Before Advice AspectJ实现
- Joinpoint After Advice标准实现
- Joinpoint After Advice AspectJ实现
- Advice容器接口 - Advisor
- Pointcut与Advice连接器 - PointcutAdvisor
- Introduction与Advice连接器 - IntroductionAdvisor
- Advisor的Interceptor适配器 - AdvisorAdapter
- AdvisorAdapter实现
- AOP代理接口 - AopProxy
- AopProxy工厂接口与实现
- JDK AopProxy实现 - JdkDynamicAopProxy