AOP概述

什么是AOP?

  • AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程)
  • 面向切面编程其实就是面向特定方法编程

下面我们通过一个开发中的应用场景,来说明下AOP的好处。

在我们的项目当中开发了很多的功能,然而有一些功能运行的速度比较慢,现在我需要来优化这个项目。首先第一步就需要定位出执行耗时比较长的业务方法,再针对于业务方法再来进行优化。此时我们就需要统计当前这个项目当中每一个业务方法的执行耗时。那么统计每一个业务方法的执行耗时该怎么实现?

可能多数人首先想到的就是在每一个业务方法运行之前,记录这个方法运行的开始时间。在这个方法运行完毕之后,再来记录这个方法运行的结束时间。拿结束时间减去开始时间,不就是这个方法的执行耗时吗?

以上分析的实现方式是可以解决需求问题的。但是对于一个项目来讲,里面会包含很多的业务模块,每个业务模块又包含很多增删改查的方法,如果我们要在每一个模块下的业务方法中,添加记录开始时间、结束时间、计算执行耗时的代码,就会让程序员的工作变得非常繁琐。

而Spring提供的面向方法编程(AOP),就可以做到在不改动这些原始方法的基础上,针对方法进行功能的增强。

AOP的作用:在程序运行期间在不修改源代码的基础上对已有方法进行增强(无侵入性: 解耦)

我们要想完成统计各个业务方法执行耗时的需求,我们只需要定义一个模板方法,将记录方法执行耗时这一部分公共的逻辑代码,定义在模板方法当中,在这个方法开始运行之前,来记录这个方法运行的开始时间,在方法结束运行的时候,再来记录方法运行的结束时间,中间就来运行原始的业务方法。

通过以上分析对比可以发现:基于AOP面向方法编程的这种方式更加简单,更加优雅。

AOP的优势:

  1. 减少重复代码
  2. 提高开发效率
  3. 维护方便

AOP面向切面编程和OOP面向对象编程一样,它们都仅仅是一种编程思想。而Spring的AOP是Spring框架的高级技术,旨在管理bean对象的过程中底层使用动态代理机制,对特定的方法进行编程(功能增强)。

结论:面向切面编程这种思想最主流的实现方式是利用动态代理技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值