AOP(Aspect-Oriented Programming)
一、AOP概述
- 是什么:
- 一种用于将横切关注点与主要业务逻辑分离的软件开发技术
- 底层原理:
- 使用动态代理
- 有两种情况动态代理
- 有接口时,使用JDK动态代理
- 无接口时,使用CGLIB动态代理
- 操作术语:
二、AOP操作
- 准备工作:
- Spring框架里一般都是基于AspectJ实现AOP操作
- 关于AspectJ:
- 非Spring的组成部分,是一个独立AOP框架,一般将其与Spring一起用,进行AOP操作
- 基于AspectJ实现AOP操作
- 基于xml配置文件实现
- 基于注解方式实现
- 创建类,在类里定义方法
- 创建增强类(编写增强逻辑)
- 进行通知的配置
- 在spring配置文件里开启注解扫描
- 使用注解创建对象
- 在增强类上添加注解@Aspect
- 在spring配置文件中开启生成代理对象
- 配置不同类型的通知
- 相同的切入点抽取
- 有多个增强类对同一个方法进行增强,设置增强类优先级
- 在增强类上添加注解@Order(数字类型值),数字类型值越小优先级越高
- 在项目中引入AOP相关依赖
- 切入点表达式
- 作用
- 语法结构
- execution([权限修饰符][返回类型][类全路径]方法名称)