啥是AOP
啥时AOP,其实是英文Aspect Oriented Programming
的简写,意思是面向切面编程。
那啥是面向切面编程呢,举个例子,现实社会中你管理的公司有很多车辆,有大货车、有商务车、有叉车、还有垃圾车。
现在有个任务来了,车辆在出发前,必须得登记,那么应该怎么做。
是让每辆车出发前司机去登记么?要是无人车咋办?
那肯定是在车出发前,安排门卫登记,或者装个车牌识别,自动登记了。
看到没,此时车出发就是一个切面,我们精准的发现既然车都要出门,那每个车出门登记的逻辑都是一样的,所以可以按一个规则处理。
也就是说,不是在每个车出门的方法里面写登记的代码,而是指定车出门的时候执行登记。
这就是面向切面编程,也就是AOP。
AOP很重要
Spring世界中,依赖注入和AOP是最重要的组成部分,如果硬要说谁更重要的话,我觉得还是依赖注入,为啥捏,因为Spring程序确实可以不使用AOP,但是不使用依赖注入的Spring程序你见过?
啥时候用AOP
说几个常见的AOP使用场景:
- 事务处理。凡是要求几个更新数据库的操作必须一起成功一起失败的时候,必然要加事务。每个加事务的逻辑都一样,开启事务、操作数据库、提交事务、如果有异常回滚。这就可以用面向切面编程啊,切面就是执行多个更新的方法。
- 异常统一处理。抛出异常,到处处理,太麻烦了,因为很多异常其实是一个类型的。能不能统一管理?必须能啊,AOP啊,切面就是抛出异常的方法。
- 方法执行时间统计。有时候项目部署后,想跟踪下项目中各个方法的运行时间,以便排查执行缓慢消耗系统性能的方法。这就是一个切面啊,你想检查的那些方法就是切面。
总结
可见AOP就是制定一个规则,然后在符合规则的地方插入我们指定的代码逻辑。指定的规则就是所谓的切面,所以叫面向切面编程。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦