AOP的本质
AOP是一种编程思想,它帮助我们把一些“横切关注点”从主业务逻辑中分离出来。所谓“横切关注点”,就是那些在多个地方都会用到的功能,比如日志记录、事务管理、权限检查等。这些功能如果直接写在业务代码里,会导致代码重复、混乱,而且不好维护。AOP就是为了解决这些问题的。
比如说
你有一个电商系统,有订单处理、用户管理、商品管理等多个模块。每个模块都有自己的核心业务逻辑,比如订单模块要处理下单、支付、发货等操作。但同时,你还需要在每个模块里记录日志、处理事务、检查权限。如果把这些功能直接写在每个模块的代码里,就会出现以下问题:
-
代码重复:每个模块都要写类似的日志、事务、权限代码,非常冗余。
-
代码混乱:业务逻辑和这些“横切关注点”混在一起,很难看清楚核心逻辑。
-
维护困难:如果要修改日志的格式或者事务的处理方式,就得挨个修改每个模块的代码。
AOP的解决方案
AOP把这些问题的代码集中管理,让业务逻辑代码只关注核心功能,其他功能由AOP来处理。就好像你把所有模块的日志、事务、权限功能都抽出来,放在一个专门的地方,然后在需要的时候自动插入到业务逻辑中。
AOP的关键概念
-
切面(Aspect):就是用来集中管理“横切关注点”的地方。比如你把所有日志相关的代码放在一起,这就是一个切面。
-
通知(Advice):切面里的具体功能代码,比如记录日志、开启事务等。通知有不同类型,比如在方法执行前记录日志(前置通知),在方法执行后记录日志(后置通知)。
-
切入点(Pointcut):定义哪些地方需要插入通知。比如你规定所有以“save”开头的方法都需要记录日志,这个规则就是切入点。

最低0.47元/天 解锁文章
1903

被折叠的 条评论
为什么被折叠?



