-
什么是AOP
AOP:Aspect oriented Programming面向切面编程/面向方面编程,AOP提出横向抽取机制,将横切逻辑代码和业务逻辑代码分离
横切逻辑代码:在多个纵向(顺序)流程中出现的相同子流程代码,我们称之为横切逻辑代码,横切逻辑代码的使用场景很有限:一般是事务控制、权限校验、日志、性能监控等 -
AOP解决了什么问题
在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复 -
面向切面编程
「切」:指的是横切逻辑,原有业务逻辑代码不变,只能操作横切逻辑代码,所以面向横切逻辑
「面」:横切逻辑代码往往要影响的是很多个方法,每一个方法都如同一个点,多个点构成面,有一个面的概念在里面 -
AOP相关术语
通俗来讲就是:
连接点:⽅法开始时、结束时、正常运⾏完毕时、⽅法异常时等这些特殊的时机点,我们称之为连接点,项⽬中每个⽅法都有连接点,连接点是⼀种候选点
切⼊点:指定AOP思想想要影响的具体⽅法是哪些,描述感兴趣的⽅法
Advice增强:第⼀个层次:指的是横切逻辑
第⼆个层次:⽅位点(在某⼀些连接点上加⼊横切逻辑,那么这些连接点就叫做⽅位点,描述的是具体的特殊时机)
Aspect切⾯:切⾯概念是对上述概念的⼀个综合
Aspect切⾯ = 切⼊点+增强
= 切⼊点(锁定⽅法)+ ⽅位点(锁定⽅法中的特殊时机)+ 横切逻辑
众多的概念,⽬的就是为了锁定要在哪个地⽅插⼊什么横切逻辑代码