AOP - 面向切面编程思想

什么是面向切面编程?什么是AOPAspect Oriented Program 面向切面编程在不改变原有逻辑上额外增加功能,比如解决系统层面的问题,或增加新的功能。场景权限控制缓存日志处理失误控制AOP思想把功能分为两个部分,分离系统中的关注点核心关注点业务的主要横切关注点非核心,额外的增加的功能优点减少代码侵入,解耦可以统一处理横切逻辑方便添加和删除横切逻辑
AOP面向切面编程核心概念横切关注点对哪些方法进行拦截,拦截后怎么处理比如 权限认证,日志,事务通知 Adivce再特定的切入点上连接点 JointPoint要用通知的地方,业务员流程在运行过程中需要插入切面的具体位置一般是方法调用的前后,全部方法都可以是链接点切入点 Pointcut不能全部方法都是切入点,通过特定的规则来筛选切入点, 选中那几个你想要的方法在程序中主要体现为书写切入点表达式(通配,正则)过滤出特定的一组 JointPoint连接点过滤出相应的Advice 将要发生JointPoint地方切面 Aspect通常是一个类,里面定义切入点+通知 ,定义在什么地方,什么时间点,做什么事情通知 advice 指明了时间和做的事情 (前置,后置等)切入点pointcut 指定在什么地方干这个事情web接口设计中,web层 > 网关层 > 服务层 > 数据层,每一层之间也是一个切面,对象和对象,方法和方法之间都是一个切面目标 target目标类,真正的业务逻辑,可以在目标类不知情的条件下,增加新的功能到目标类的链路上织入 Weaving把切面(某个类)应用到目标函数的过程称为织入AOP代理AOP框架创建的对象,代理就是目标对象的加强Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理img

posted @ 2020-07-28 18:34  邓明晨  阅读(57)  评论(0编辑  收藏