写点什么

javaAOP

作者:秋名山码民
  • 2022 年 5 月 15 日
  • 本文字数:649 字

    阅读完需:约 2 分钟

AOP

  • AOP 面向切面编程,一种编程范式,指导开发者如何组织程序结构

  • OOP 面向对象编程

  • 作用:不惊动原始设计的基础上做增强



面向切面编程


  • 连接点:程序在执行过程中的任意位置,粒度为执行方法,抛出异常,设置变量等

  • 在 springAOP 中理解为方法的执行

  • 切入点:匹配连接点的式子

  • 在 SpringAOP 中,一个切入点可以只描述一个具体的方法,也可以匹配多个方法

  • 一个具体方法

  • 匹配多个方法

  • 通知:在切入点执行的操作,就是共性功能

  • 在 SpringAOP 中,功能最终以方法的形式呈现

  • 通知类:定义通知的类

  • 切面:描述通知与切入点的对应关系


AOP 入门案例


案例设定:测定接口执行效率


简化设定:在接口执行前输出当前系统时间


开发模式:xml or 注解


思路分析:


  1. 导入坐标(pom.xml)

  2. 制作连接点方法(原始操作,Dao 接口与实现类)

  3. 制作共性功能

  4. 定义切入点

  5. 绑定功能和切入点关系(切面)








AOP 工作流程

  1. Spring 容器启动

  2. 读取所有切面配置中的切入点

  3. 初始化 bean,判定 bean 对应的类中方法是否匹配到任意切入点


  • 匹配失败,创建对象

  • 匹配成功,创建原始对象(目标对象)的代理对象


  1. 获取 bean 执行方法


  • 获取 bean,调用方法并执行,完成操作

  • 获取 bean 是代理对象时候,根据代理对象的运行模式运行原始方法与增强内容,完成操作


AOP 切入点表达式

  • 切入点:要进行增强的方法

  • 切入点表达式:要进行增强的方法的描述方式、


  • 标准格式:动作关键字(访问修饰符 返回值 包名.类.方法名(参数)异常名)



  • 快速描述:通配符

  • *:单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀出现

  • ..:多个连续的任意符号可以独立出现,常用于简化包名与参数

  • +:专用于匹配子类类型



AOP 通知类型



发布于: 刚刚阅读数: 4
用户头像

卷不死,就往…… 2021.10.19 加入

2019NOIP退役成员,华为云享专家,阿里云专家博主,csdn博主,努力进行算法分享,有问题欢迎私聊

评论

发布
暂无评论
javaAOP_java 并发_秋名山码民_InfoQ写作社区