通俗理解AOP核心概念

                                                         AOP核心概念


前言

    一直以来AOP,我个人都是似懂非懂,感觉总是没理解透彻。个人感觉,就是概念点多,且由于翻译的原因,同一概念有多种说法,在还没完全搞懂前,好容易混淆和思维混乱。下面,我就把自己通俗的理解,分享一下,看会不会更容易理解。


一、Aop做什么

      AOP负责,把切面所定义的横切逻辑,织入到切面所指定的连接点。

二、核心概念通俗理解

  • Aspect=切面: 由切点和增强组成。就是什么样的连接点,要增强什么。

  • 横切关注点关注点就是功能或业务逻辑。所以横切关注点就是周边功能的逻辑。

  • 核心关注点:与横切关注点相对,就是我们平时的核心业务。

  • Join Point=连接点:方法的执行点;对于spring,所有方法的执行点都是连接点;备选点

  • Pointcut=切点:对连接点进行拦截的定义;所有方法都可视为连接点,切点要做的就是给一个规则,让符合的连接点添加增强。可以理解成规则;修饰;限定;筛选标准;

  • Advice=增强Or通知:就是拦截到连接点后,要执行的方法。理解成增强更好理解,就是在原对象基础上套一层逻辑,更强了。分为前置、后置、异常、最终、环绕通知五类。

  • Target=目标对象:AOP用代理的方式实现切面,会产生代理对象,就是目标对象。这别把Target理解成原对象了,不要和代理对象里的target(原对象)属性混淆了。

  • Weaving=织入:把切面和其它对象连接,并创建目标对象的过程。spring使用JDK动态代理织入。

  • Introduction=引入:不修改代理前提下,引入可以在运行期为类动态添加一些方法


三、类比理解

        感觉这概念的东西,怎么说都会不好理解 。下面,我尝试举一下生活的例子用来类比说明,如果理解有误,麻烦帮忙指正。

      先来个故事:

       A星探收到了A公司的任务,其任务是:【在A城市,在6到8岁的男生里,找出有歌唱天赋的,A公司要将其培养成下一个周杰伦。】人物设定,设定A城市所有6到8岁的男生,主业都是去学校上学,在家里都是妈妈说了算。结果:通过A星探的努力 ,在成千上万的6到8岁小男生中,找到了3个极有天赋的男生,送到A公司培训了。由于只有6到8岁,3个男生委托妈妈做代理,全权负责与A公司的合同签定工作。

      Ok!故事说完了,现在我们来类比一下:

      核心关注点 : 小男生的主业务,就是上学

      横切关注点 : 小男生的周边业务,是成为下一个周杰伦

      Join Point=连接点 : A城市所有男生

      Pointcut=切点 :就是故事中任务的要求,【要6到8岁】【是男生】【有歌唱天赋】

      Advice=增强Or通知 : 就是找到合适的男生后,要怎么做,那就是参加A公司的培训

      Target=目标对象 :由于小男生没完全民事行为能力,所以产生了代理人,就是他们的妈妈。 

      Aspect=切面: 可以理解为A公司给星探的任务。切点+增强

       Weaving=织入:就是A星探望接到任务后,在人海中寻找符合要求的男生的过程,最终会与          他们妈妈签定合同,产生了代理的过程

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值