zoukankan      html  css  js  c++  java
  • AOP的概念

    一、事务

    二、动态代理

      特点:字节码随用随创建,随用随加载

      作用:不修改源码的基础上对方法增强

      分类:

        基于接口的动态代理

        基于子类的动态代理

    基于接口的动态代理:

        涉及的类,proxy

        提供者,JDK官方

      如何创建代理对象:

        使用Proxy类中的newProxyInstance方法

      创建代理对象的要求:

        被代理类最少实现一个接口,如果没有则不能使用

      newProxyInstance方法的参数:

        ClassLoader:类加载器

          它是用于加载代理对象字节码的。和被代理对象使用相同的类加载器。固定写法。

        Class[]:字节码数组

          它是用于让代理对象和被代理对象有相同方法,固定写法。

        InvocationHandler:用于提供增强的代码

          它是让我们写如何代理。我们一般都是写一个该接口的实现类,通常情况下都是匿名内部类。但不是必须的。

          此接口的实现类都是谁用谁写。

          InvocationHandler的内部类方法:invoke

          

    基于子类的动态代理:

        涉及的类,Enhancer

        提供者,第三方cglib库

      如何创建代理对象:

        使用Enhancer类中的create方法

      创建代理对象的要求:

        被代理类不能是最终类

      create方法的特点:执行任何被代理对象的任何方法都会经过该方法

      create方法的参数:

        class:字节码

          它是用于指定被代理对象的字节码

        CallBack:用于提供增强的代码

          它是让我们写如何代理。我们一般都是写一个该接口的实现类,通常情况下都是匿名内部类,但不是必须的。

          此接口的实现类都是谁用谁写。

          我们一般写的都是该接口的子接口实现类:MethodInterceptor

        

    使用动态代理实现事务控制:

      

     三、AOP(面向切面编程)

      面向切面编程,通过编译方式和运行期的动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之前的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

      简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。

      1、AOP的作用及优势

       作用:

         在程序运行期间,不修改源码对已有方法进行增强

      优势:

        ① 减少重复代码

        ②提高开发效率

        ③维护方便

      2、AOP的实现方式

        使用动态代理技术

        

  • 相关阅读:
    IDEA生成可执行的jar文件
    Android ROM包定制(解包,增删模块,打包)
    frida的用法--Hook Java代码篇
    C语言sprintf和sscanf函数用法
    C语言memcpy函数的用法
    自己动手编译Android(LineageOS)源码
    j2ee高级开发技术课程第三周
    linux内核学习之全局描述符表(GDT)(二)
    螺旋队列顺时针方向 和逆时针方向的实现
    zigzag数组:输入n,求一个nXn矩阵,规定矩阵沿45度递增,形成一个zigzag数组
  • 原文地址:https://www.cnblogs.com/jichuang/p/13377829.html
Copyright © 2011-2022 走看看