AOP

作者: 大树8026 | 来源:发表于2018-12-12 23:47 被阅读0次

    文章参考:https://blog.csdn.net/yuexianchang/article/details/77018603

    1、什么是AOP
    Aspect-Oriented Programing,为分散对象引入公共行为。将应用程序的商业逻辑和为其提供支持的通用服务进行分离

    2、应用场景
    事务
    权限
    日志
    缓存

    3、基本概念
    1)、切面
    2)、通知:before after throwing returning
    3)、切点:利用切点表达式定义的方法的地方(方法)
    4)、连接点:可能是修改程序的地方,发生异常的地方(方法中)
    5)、切片:通知+切点
    6)、织入:
    7)、切入:

    4、AOP原理
    以@EnableAspectJAutoProxy为例:
    重要的组件:@EnableAspectJAutoProxy功能是开启AOP功能,会给容器中注册后置处理器:AnnotationAwareAspectJAutoProxyCreator

    在容器的创建流程过程中,首先会注册后置处理器,创建AnnotationAwareAspectJAutoProxyCreator对象。
    其次,在初始化剩下单实例bean的过程中,会经历以下几步:
    1)、创建业务逻辑组件和切面组件
    2)、AnnotationAwareAspectJAutoProxyCreator会拦截创建组件的过程
    3)、在组件完成的时候,判断组件是否需要增强
    4)、若需要增强,则将通知方法包装成增强器,创建业务组件的代理对象

    执行目标方法的过程中:
    intercept()方法进行拦截,得到目标方法的拦截器链(增强方法),利用拦截器链式机制,依次进入执行增强方法。
    正常执行:前置通知-->后置通知-->返回通知
    异常情况:前置通知-->后置通知-->异常通知

    相关文章

      网友评论

          本文标题:AOP

          本文链接:https://www.haomeiwen.com/subject/ilyphqtx.html