专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 一文读懂AOP面向切面编程

一文读懂AOP面向切面编程

更新时间:2022-11-24 10:23:23 来源:动力节点 浏览688次

AoP

Java教程中大家会学到AOP,AoP:面向切面编程,对业务逻辑的各个部分进行隔离,使得业务逻辑的各个部分之间的耦合度降低。

通俗来讲:不修改源码的方式,在主干功能里添加新功能。

1.AoP底层使用动态代理

有两种动态代理情况:

(1)有接口,使用JDK动态代理

创建接口实现类的代理对象,增强类的方法

(2)没有接口情况,使用CGLIB动态代理

创建子类的代理对象,增强类的方法

2.AoP(JDK的动态代理)

JDK的动态代理:使用Proxy类的方法newProxyInstance方法来创建代理对象

第一个参数:类加载器;

第二个参数:增强方法所在的类所实现的接口,支持多个接口

第三个参数:实现InvocationHandler接口,创建代理对象,写增强的方法

代码实现:

spring5对动态代理做了封装

3.AoP术语:

(1)连接点:可以被增强的方法

(2)切入点:实际被增强的方法

(3)通知(增强):实际增强的逻辑部分

通知的类型:

前置通知

后置通知(有异常就不执行)

环绕通知

异常通知

最终通知(有异常仍然执行)

(4)切面:是动作,把通知应用到切入点过程

(把增强的逻辑部分应用到需要被增强的方法处)

Spring 框架一般是基于ASpectJ实现AoP操作

ASpectJ不是Spring的组成部分,是独立的AoP框架,一般把AspectJ和Spring框架一起使用,进行AoP操作

基于ASpectJ实现AoP操作的方式:

(1)基于xml配置文件方式

(2)基于注解方式

切入点表达式:

切入点:实际被增强的方法

切入点表达式的作用:用来知道是对哪个类的哪个方法进行增强

以上就是关于“一文读懂AOP面向切面编程”的介绍,大家如果想了解更多相关知识,不妨来关注一下本站的Spring框架教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助哦。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>