手记

Spring之路(42)–Spring AOP是啥?啥时候用?

啥是AOP

啥时AOP,其实是英文Aspect Oriented Programming的简写,意思是面向切面编程。

那啥是面向切面编程呢,举个例子,现实社会中你管理的公司有很多车辆,有大货车、有商务车、有叉车、还有垃圾车。

现在有个任务来了,车辆在出发前,必须得登记,那么应该怎么做。

是让每辆车出发前司机去登记么?要是无人车咋办?

那肯定是在车出发前,安排门卫登记,或者装个车牌识别,自动登记了。

看到没,此时车出发就是一个切面,我们精准的发现既然车都要出门,那每个车出门登记的逻辑都是一样的,所以可以按一个规则处理。

也就是说,不是在每个车出门的方法里面写登记的代码,而是指定车出门的时候执行登记。

这就是面向切面编程,也就是AOP。

AOP很重要

Spring世界中,依赖注入和AOP是最重要的组成部分,如果硬要说谁更重要的话,我觉得还是依赖注入,为啥捏,因为Spring程序确实可以不使用AOP,但是不使用依赖注入的Spring程序你见过?

啥时候用AOP

说几个常见的AOP使用场景:

  1. 事务处理。凡是要求几个更新数据库的操作必须一起成功一起失败的时候,必然要加事务。每个加事务的逻辑都一样,开启事务、操作数据库、提交事务、如果有异常回滚。这就可以用面向切面编程啊,切面就是执行多个更新的方法。
  2. 异常统一处理。抛出异常,到处处理,太麻烦了,因为很多异常其实是一个类型的。能不能统一管理?必须能啊,AOP啊,切面就是抛出异常的方法。
  3. 方法执行时间统计。有时候项目部署后,想跟踪下项目中各个方法的运行时间,以便排查执行缓慢消耗系统性能的方法。这就是一个切面啊,你想检查的那些方法就是切面。

总结

可见AOP就是制定一个规则,然后在符合规则的地方插入我们指定的代码逻辑。指定的规则就是所谓的切面,所以叫面向切面编程。

0人推荐
随时随地看视频
慕课网APP