(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP底层原理
(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能
JDK动态代理
- JDK动态代理(有接口情况):创建接口实现类代理对象,增强类的方法
- CGLIB动态代理(无接口情况):创建子类的代理对象,增强类的方法
调用newProxyInstance 方法2.编写JDK动态代理代码
- 第一参数,类加载器
- 第二参数,增强方法所在的类,这个类实现的接口,支持多个接口
- 第三参数,实现这个接口 InvocationHandler,创建代理对象,写增强的部分
类中哪些方法可以被增强,这些方法被称为连接点2.切入点
实际被增强的方法叫切入点3.通知(增强)
被增强的逻辑部分叫通知,下面是5种通知类型4.切面
- 前置通知
- 后置通知(返回通知)
- 环绕通知
- 异常通知
- 最终通知
是一个动作,把通知应用到切入点的过程AOP操作-准备工作
AspectJ 不是 Spring 组成部分,独立 AOP 框架,一般把 AspectJ 和 Spirng 框架一起使用,进行 AOP 操作基于AspectJ实现AOP操作
(1)基于 xml 配置文件实现引入AOP相关依赖
(2)基于注解方式实现(使用)
作用:知道对哪个类里面的哪个方法进行增强举例1:对 com.atguigu.dao.BookDao 类里面的 add 进行增强
语法结构: execution([权限修饰符] [返回类型] [类全路径] [方法名称] ([参数列表]) )
在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置User.java
多个方法execution表达式相同时使用
在增强类上面添加注解 @Order(数字类型值),数字类型值越小优先级越高7.完全注解开发
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |