zoukankan      html  css  js  c++  java
  • Spring5快乐教程(九)注解编程详解

    一、AOP的基本概念

    什么是AOP

      定义:面向切面(方面)编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得其之间耦合度降低提高程序可重用性,同时提高了开发效率

      通俗描述:不修改源代码方式,在主干功能里添加新的功能。

    底层原理

      AOP的底层原理使用的是动态代理

    两种情况

    • 有接口的情况:使用JDK动态代理
      • 创建接口实现类的代理对象,来增强类其中的一些方法。
    • 无接口的情况:使用CGLIB动态代理
      • 创建子类的代理对象,来增强类其中的一些方法。

    二、JDK动态代理的实现

    调用java.lang.reflect.proxy类的newProxyInstance方法

    三个参数

    • 类加载器
    • 增强方法所在的类所实现的接口【数组形式,支持多个接口】
    • 实现InvocationHandler接口的对象

    代码实现

    第1步 创建接口,定义方法

    第2步 创建接口实现类,实现方法

    第3步 使用Proxy类创建接口的代理对象

    三、操作术语

    连接点

      定义:类中可以被增强的方法

    切入点

      定义:类中实际被增强的方法

    通知(增强)

      定义:际被增强(通知)的逻辑代码

      类型:

    • 前置通知
    • 后置通知
    • 环绕通知
    • 异常通知
    • 最终通知

    切面

      定义:描述动作,把增强(通知)应用到切入点的过程

  • 相关阅读:
    DHCP分配ip地址。0.0.0.0与255.255.255.255
    net-snmp配置文件详解
    net-snmp开发中出现“Error opening specified endpoint"" ”的解决方案
    Elasticsearch 学习笔记
    Prometheus 监控报警系统 AlertManager 之邮件告警
    Match All Query
    Elasticsearch postman
    Centos7修改root密码
    ElasticSearch中profile API的使用
    kafka查询某时间段内的消息
  • 原文地址:https://www.cnblogs.com/riches/p/14245545.html
Copyright © 2011-2022 走看看