什么是AOP

AOP概念

AOP就是面向方法编程也可以说是面向切面编程,可以在不影响源代码的基础上对方法进行增强。那什么又是面向方法编程呢,为什么又需要面向方法编程呢?来我们举个例子做一个说明:

比如,我们这里有一个项目,项目中开发了很多的业务功能。然而有一些业务功能执行效率比较 低,执行耗时较长,我们需要针对于这些业务方法进行优化。 那首先第一步就需要定位出执行耗 时比较长的业务方法,再针对于业务方法再来进行优化。 此时我们就需要统计当前这个项目当中每一个业务方法的执行耗时。那么统计每一个业务方法的执 行耗时该怎么实现? 可能多数人首先想到的就是在每一个业务方法运行之前,记录这个方法运行的开始时间。在这个方 法运行完毕之后,再来记录这个方法运行的结束时间。拿结束时间减去开始时间,不就是这个方法 的执行耗时吗?

以上分析的实现方式是可以解决需求问题的。但是对于一个项目来讲,里面会包含很多的业务模 块,每个业务模块又包含很多增删改查的方法,如果我们要在每一个模块下的业务方法中,添加记 录开始时间、结束时间、计算执行耗时的代码,就会让程序员的工作变得非常繁琐。 而如果我们基于 AOP 技术来实现,将会变得很简单。 在AOP中,我们可以把某一些方法共性的一 些功能统一进行抽取,定义在AOP程序中,程序运行时,动态的为原始业务方法进行增强 ,更加灵 活、高效、简洁 。 具体代码如下:

AOP涉及的其他核心概念

连接点

连接点指的是可以被aop控制的方法。

通知

指哪些重复的逻辑,也就是共性功能(最终体现为一个方法)

切入点

匹配连接点的条件,通知仅会在切入点方法执行时被应用

在通知当中,我们所定义的共性功能到底要应用在哪些方法上?此时就涉及到了切入点pointcut 概念。切入点指的是匹配连接点的条件。通知仅会在切入点方法运行时才会被应用。 在aop的开发当中,我们通常会通过一个切入点表达式来描述切入点

切面

描述通知与切入点的对应关系(通知+切入点)

目标对象

通知所应用的对象

需要特别理解的是连接点和切入点,可以简单理解为连接点包含切点,连接点是可被切的方法,切点就是真正切入的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值