• AOP相关概念


    AOP概念

    面向切面编程(Aspect Oriented programming),讲很多业务都要使用的功能进行抽取出来单独实现,在运行业务的时候,再动态的植入这些抽取的代码(将共性业务和核心业务分离)

    例子:
    1 、身份验证(登录)
    2、权限验证
    3、转账
    4、历史交易记录
    1,2,4三个功能是公共的功能,抽取出来,单独使用,将公共业务和核心业务进行分离。

    AOP是一种思想,与具体的技术无关

    优点:
    (1)、实现共性功能和和核心功能的解耦
    (2)、提高共性功能的代码的复用率
    (3)、 业务功能拓展更便捷

    Aop

    底层原理:动态代理

    1、动态代理:实现了代理模式。再Spring中实现动态代理的方式:
    (1)、JDK的动态代理
    (a)、动态代理类需要实现InvocationHandler接口
    (b)、被代理的类需要实现相应的接口
    缺陷:不能直接代理Java类,必须实现某个接口的类 (2)、CGLIB动态代理
    (a)、代理类需要实现MethodInterceptor接口,重写该接口的interceptor方法
    优点:被代理的类不需要实现接口,但是不能是final修饰的类
    2、AOP和OOP之间的关系
    (1)、AOP是OOP的一个有效补充和完善
    (a)、OOP的抽象是一种纵向的抽象
    (b)、AOP的抽象是一种横向的抽象
    (2)、AOP相关的概念
    a、切面(Aspect):是类,是对横切关注点的抽象 (通知和切入点的结合)
    b、连接点(JoinPoint):程序执行过程中某个特定的点(某个特定的点执行方法)。SpringAop中一个连接点表示一个方法的执行
    c、切入点(Pointcut):匹配连接点的拦截规则,AOP的核心,什么时候把横切关注点切进来。
    d、通知/增强(Advice):切面上拦截到某个特定的连接点之后执行的某个动作
    e、目标对象(target object):被一个或者多个切面所通知的对象,即业务中需要进行增强的业户对象
    f、织入(Weaving):把切面作用到目标对象上产生一个代理对象上
    g、引入(Introduction):在运行时给一个类生命额外的方法或者属性,不需要为类实现一个接口就能使用接口中的方法
    h、横切关注点:是一个类,公共的业务

  • 相关阅读:
    [附源码]JAVA毕业设计仟侬堂茶具网站(系统+LW)
    数据结构与算法特训365天—深度优先搜索
    C++ Qt 学习(文章链接汇总)
    vite + react + ts 配置路径别名alias
    智能家居浪潮来袭,如何让机器看懂世界 【结尾有资料】
    calibre和cpolar搭建一个私有的网络书库
    深度神经网络应用实例
    DX::ThrowIfFailed使用
    2022年国内云管平台厂商哪家好?为什么?
    【数据结构】顺序查找,折半查找,分块查找的知识点总结及相应的代码实现
  • 原文地址:https://blog.csdn.net/weixin_45511599/article/details/126281796