• 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的实现方式

        使用动态代理技术

        

  • 相关阅读:
    【docker】关于docker中挂载的解释
    【linux】centos7安装使用rz/sz命令
    【docker】 docker容器内部安装vi命令
    【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
    【docker】docker部署spring boot项目在服务器上
    【spring boot】spring boot后台时间正确,返回给前台的时间不正确,和后台差8个小时
    html页面跳转传递参数
    SpringCloud服务如何在Eureka安全优雅的下线
    使用SpringBoot Admin监控SpringCloud微服务
    对actuator的管理端点进行ip白名单限制(springBoot添加filter)
  • 原文地址:https://www.cnblogs.com/jichuang/p/13377829.html
Copyright © 2020-2023  润新知