细说AOP
- aop:面向切面编程,在不修改源代码的基础上面扩展项目的功能
- aop采取横向抽取机制,取代了传统纵向继承体系重复性代码
-
原理:横向抽取俩种动态代理模式
- 有接口的情况下,代理出一个接口实现类(实际这个类是不存在的),去实现代理
- 没有接口的清下,代理出一个子类去继承父类的方法(实际这个类是不存在的),从而实现代理
-
aop操作术语
- 连接点:类里面哪些方法可以被增强,这些方法就称为连接点
- 切入点:在类里面可以有很多的方法被增强,但是实际情况下,不是所有方法都会被增强,实际增强的方法才称为切入点
-
advice(通知/增强):增强的逻辑,称为增强/通知,比如扩展日志功能,这个日志功能就称为增强。增强/通知类型如下:
- 前置通知:在方法之前执行
- 后置通知:在方法之后执行
- 异常通知:方法出现异常
- 最终通知:在后置之后执行
- 环绕通知:在方法之前和之后执行
- 切面:把增强应用到具体方法上面,过程称为切面(把增强用到切入点过程)
- target(目标对象)
- 织入:把增强用到类里面
-
Spring的aop操作
- 进行aop操作,使用aspectj实现(aspectj不是Spring的一部分,和Spring一起使用进行aop操作,注:Spring建议使用aspectj)
-
使用aspectj实现aop操作的俩种方式
- 基于aspectj的xml配置
- 基于aspectj的注解方式
- 使用表达式配置切入点

- 具体xml配置如下:

- 注解的方式配置如下:

- 在类里面的注解只要在扩展功能类里面注解下,如下图

相关文章:
-
2021-05-23
-
2021-09-30
-
2022-01-20
-
2022-12-23
-
2022-12-23
猜你喜欢
-
2021-06-11
-
2022-02-25
-
2021-08-11
-
2021-10-16
-
2021-04-14
-
2021-12-16
-
2021-09-27
相关资源
-
下载
2023-02-06
-
下载
2023-01-15
-
下载
2023-04-02