首页 > 其他分享 >15. AOP总结

15. AOP总结

时间:2023-06-25 23:12:33浏览次数:49  
标签:总结 15 后置 通知 切入点 AOP 返回值 环绕 方法

1. AOP的核心概念

  • 概念:AOP(Aspect Oriented Programming)面向切面编程,一种编程范式

  • 作用:在不惊动原始设计的基础上为方法进行功能增强

  • 核心概念

    • 代理(Proxy):SpringAOP的核心本质是采用代理模式实现的
    • 连接点(JoinPoint):在SpringAOP中,理解为任意方法的执行
    • 切入点(Pointcut):匹配连接点的式子,也是具有共性功能的方法描述
    • 通知(Advice):若干个方法的共性功能,在切入点处执行,最终体现为一个方法
    • 切面(Aspect):描述通知与切入点的对应关系
    • 目标对象(Target):被代理的原始对象成为目标对象

2. 切入点表达式

  • 切入点表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名)

    execution(* com.itheima.service.*Service.*(..))
    
  • 切入点表达式描述通配符:

    • 作用:用于快速描述,范围描述
    • *​:匹配任意符号(常用)
    • ..​ :匹配多个连续的任意符号(常用)
    • +​:匹配子类类型
  • 切入点表达式书写技巧
    1.按标准规范开发
    2.查询操作的返回值建议使用匹配3.减少使用..的形式描述包4.对接口进行描述,使用表示模块名,例如UserService的匹配描述为表示模块名,例如UserService的匹配描述为Service5.方法名书写保留动词,例如get,使用表示名词,例如getById匹配描述为getBy**表示名词,例如getById匹配描述为getBy
    6.参数根据实际情况灵活调整6.参数根据实际情况灵活调整

3. ​ 五种通知类型5.3 五种通知类型

  • 前置通知前置通知

  • 后置通知后置通知

  • 环绕通知(重点)环绕通知(重点)

    • 环绕通知依赖形参ProceedingJoinPoint才能实现对原始方法的调用环绕通知依赖形参ProceedingJoinPoint才能实现对原始方法的调用
    • 环绕通知可以隔离原始方法的调用执行环绕通知可以隔离原始方法的调用执行
    • 环绕通知返回值设置为Object类型环绕通知返回值设置为Object类型
    • 环绕通知中可以对原始方法调用过程中出现的异常进行处理环绕通知中可以对原始方法调用过程中出现的异常进行处理
  • 返回后通知返回后通知

  • 抛出异常后通知抛出异常后通知

4. ​ 通知中获取参数5.4 通知中获取参数

  • 获取切入点方法的参数,所有的通知类型都可以获取参数获取切入点方法的参数,所有的通知类型都可以获取参数

    • JoinPoint:适用于前置、后置、返回后、抛出异常后通知JoinPoint:适用于前置、后置、返回后、抛出异常后通知
    • ProceedingJoinPoint:适用于环绕通知ProceedingJoinPoint:适用于环绕通知
  • 获取切入点方法返回值,前置和抛出异常后通知是没有返回值,后置通知可有可无,所以不做研究获取切入点方法返回值,前置和抛出异常后通知是没有返回值,后置通知可有可无,所以不做研究

    • 返回后通知返回后通知
    • 环绕通知环绕通知
  • 获取切入点方法运行异常信息,前置和返回后通知是不会有,后置通知可有可无,所以不做研究获取切入点方法运行异常信息,前置和返回后通知是不会有,后置通知可有可无,所以不做研究

    • 抛出异常后通知抛出异常后通知
    • 环绕通知环绕通知

标签:总结,15,后置,通知,切入点,AOP,返回值,环绕,方法
From: https://www.cnblogs.com/NorthPoet/p/17504206.html

相关文章

  • Educational Codeforces Round 150 (Rated for Div. 2) A-E
    比赛链接A代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;boolsolve(){intn;cin>>n;if(n<=4)cout<<"Bob"<<'\n';elsecout<<"Alice"<<......
  • 大二暑假第一周总结
    这一周是数据结构的小学期,学了最小生成树的Prim算法,矩阵运算,链式基数排序等算法。第二阶段设计了渡船管理模拟系统,是用Python语言写的。Python语言强大且方便,有很多库和函数的功能都是意想不到的好用。课程设计工作日报表时间:2023年  6月16日序号工作分类工作......
  • 每周总结
    6.19前一天到家,早上简单收拾了一下行李,然后去报名了驾校准备考驾照,报名后就去体检了,体检非常顺利,前后就预约了科一,开始看题库做模拟题,感觉这题出了好多新规题变难了,感觉要是不好好看题就给挂了,回家后看了看科一的题。吃个午饭睡了一下午,醒了后打了会游戏刷了会儿视频就又吃饭了,吃......
  • 电脑版 - imessages群发,苹果imessages短信,苹果imessages推信,完美实现总结
    一、PC电脑版苹果系统(MacOS)上实现imessages群发总结为以下几种方式:/*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁”工具欺骗macOS系统,让苹果系统认为你的......
  • Python 知识点总结-- join 拼接
    路径拼接   path.join() 和str.join() 区别path.join() join方法是一个不定长参数path.join()是python中的OS模块中的方法,使用前需要导入os 用于将多个路径拼接成一个完整的路径。使用该方法时,需要将需要的拼接的路径以参数的形式传递给该方法importosfull......
  • 第三阶段PTA题目集总结及课程的教学评价
    目录前言:PTA题目集:7-1统计Java程序中关键词的出现次数设计与分析:具体代码踩坑心得改进建议课程成绩统计程序-1设计与分析:具体代码踩坑心得改进建议课程成绩统计程序-2设计与分析:具体代码踩坑心得改进建议课程成绩统计程序-3设计与分析:具体代码踩坑心得改进建议总结:课程的教学评价......
  • 14. AOP配置管理
    1.AOP切入点表达式前面的案例中,有涉及到如下内容:​​对于AOP中切入点表达式,我们总共会学习三个内容,分别是语法格式​、通配符​和书写技巧​。1.1语法格式首先我们先要明确两个概念:切入点:要进行增强的方法切入点表达式:要进行增强的方法的描述方式对于切入点的......
  • 15 个 JavaScript 框架的全面概述
    JavaScript框架是预先编写的JavaScript代码集合,为开发Web应用程序提供结构化且可重用的基础。这些框架都有自己独特的功能、方法和生态系统。1.React.js描述React.js,通常称为React,是一个用于构建用户界面的声明性和基于组件的JavaScript库。它由Facebook开发,由于其高效、......
  • ASM disk group mount fails with ORA-15036: disk is truncated [ID 1077175.1]
     ASMdiskgroupmountfailswithORA-15036:diskistruncated[ID1077175.1]--------------------------------------------------------------------------------  修改时间05-OCT-2011    类型PROBLEM    状态PUBLISHED  InthisDocument Sympto......
  • ORA-15061 reported while doing a file operation with 11.1 or 11.2 ASM after PSU
    ORA-15061reportedwhiledoingafileoperationwith11.1or11.2ASMafterPSUappliedindatabasehome[ID1070880.1]--------------------------------------------------------------------------------修改时间26-OCT-2011类型PROBLEM状态PUBLISH......