spring aop:横切关注点

链接:https://www.jianshu.com/p/6565361f6845/

想象有一栋写字楼,写字楼里有10间公司,每间公司的业务各不相同,但可能都存在安保服务、后勤服务的需求。这些需求都不是业务关注点,但是公司业务的开展需要这些服务的支撑。如果你是公司的boss,你希望花很大精力在这些关注点上吗?还是只需要关注你的核心业务领域?写字楼提供了一种理想的组织模式,它把安保、后勤等服务从每间公司的需求清单上抽取出来,外包给其他组织,公司只需要在需要的时候,在它业务的某个点上使用这些服务就可以了。

代码中常常弥漫着这样一些关注点,这些关注点关心事务、安全等非业务特性,比如:一次数据库操作需要包裹在事务中;执行应用的某个操作之前需要检查是否具有权限。

对比写字楼模式,我们应该如何实现上述的关注点?(1)需要把这些关注点剥离出来,在单独的模块(oo中是class)中实现;(2)在需要这些关注点的位置,能自由的织入。

如何命名这些关注点?这些关注点是在你的业务主线上根据需要被织入的,所以“横切关注点”是一个很贴切的名称。



posted on 2022-07-08 09:32  小吴编  阅读(71)  评论(0编辑  收藏  举报