实训摆烂D8天



AOP的操作术语:

横切关注点:对哪些方法进行拦截,拦截后是怎么处理

切面:AOP对横向切关注点的抽象 可以定义切入点和通知

连接点:被拦截到的点。可以是字段也可以是构造函数

通知(advice):

- 前置:在方法执行之前执行
- 后置:在方法执行之后执行
- 异常:在目标方法的抛出异常执行
- 返回:在目标方法返回结果后执行
- 环绕通知:可以同时实现前置和后置的功能

目标对象:代理对象(代理:动态代理和GGlib代理)

织入:将切面应用到目标对象导致对象创建的过程

引入:在你不修改代码的前提下,我可以添加一些方法或者字段

Aop的实现方法:

- 代理对象工厂
- 对应xml的配置通过<aop:config>标签(常用)
- 注解@AspectJ(常用)
- 使用传统的注入切面的

实现步骤

- 先定义普通的业务组件
- 定义切入点,可以横切多个业务组件
- 定义增强处理,处理动作

AOP注解实现方式:

相关的注解:

- @Aspect:定义切面注解:运用在某个类上面 这个类定义为切面
- 相关通知的注解:
- @Before:前置通知注解
- @After:后置通知注解
- @AfterThrowing:异常通知注解
- @AfterReturn:返回通知时注解
- @Around:环绕注解
- @PointCut:用来定义切点