Spring学习笔记_4_Spring AOP

AOP概述

AOP(面向方面编程)是一种编程范式,一般是用与具有横切逻辑的场合,如访问控制、事务管理、性能检测等,旨在通过允许横切关注点的分离,提高模块化。

在这里插入图片描述
我们可以把横向的function提取到一个地方去,在我们使用的时候我们把它植入到相应的类中去执行。
方便代码的修改,编写业务逻辑时可以专心于核心业务。

AOP术语

  • 切面
  • 连接点
  • 切入点
  • 通知/增强处理
  • 目标对象
  • 代理对象
  • 织入
    面向切面编程主要关乎两个问题,即在什么位置执行什么功能。

基于XML配置文件的AOP实现

使用AOP框架时,开发者需要做的主要工作是定义切入点和通知,通常采用XML配置文件或注解的方式,配置好切入点和增强处理的信息后,AOP框架会自动生成AOP代理。

前置通知

D:eclipse/spring-5
添加jar包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
joinPoint.getArgs可以获得browse的两个参数
在这里插入图片描述
在这里插入图片描述

返回通知

返回通知是指在连接点正常执行后实施增强,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容。

实例

在上一个项目中做补充
在这里插入图片描述
在这里插入图片描述
其余不变,运行结果:
在这里插入图片描述

异常通知

异常通知在连接点抛出异常后执行

实例

没异常,先整出来个异常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

环绕通知

环绕通知是围绕在连接点前后,比如一个方法调用的前后,是最强大的通知类型,在方法调用前后自定义操作。环绕通知还需要负责决定是继续处理joinpoint(调用 ProceedingJoinPoint的proceed方法还是中断执行,

实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于@AspectJ注解的AOP实现

基于XML配置文件的AOP实现免不了在Spring配置文件中配置大量的信息,不仅配置麻烦,而且造成配置文件的臃肿。AspectJ框架为AOP的实现提供了一套注解,用以取代Spring配置文件中为实现AOP功能所配置的臃肿代码。
关于AspectJ注解的说明如下

  • @Aspect:用于定义一个切面
  • @Pointcut:用于定义一个切入点
  • @Before:用于定义一个前置通知,相当于BeforeAdevice
  • @AfterReturning:用于定义一个后置通知,相当于AfterReturningAdvice.
  • @AfterThrowing:用于定义一个异常通知,相当于ThrowAdvice
  • @Around:用于定义一个环绕通知,相当于MethodInterceptor
  • @After:用于定义最终final通知,不管是否异常,该通知都会执行
实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了18 篇原创文章 · 获赞 18 · 访问量 1174

猜你喜欢

转载自blog.csdn.net/qq_42542609/article/details/103968330
今日推荐