虽然Around功能强大,但通常需要在线程安全的环境下使用。因此,如果使用普通的Before、AfterReturing增强方法就可以解决的事情,就没有必要使用Around增强处理了。

Proceedingjoinpoint 继承了 JoinPoint 。是在JoinPoint的基础上暴露出 proceed 这个方法。proceed很重要,这个是aop代理链执行的方法。暴露出这个方法,就能支持 aop:around 这种切面(而其他的几种切面只需要用到JoinPoint,这跟切面类型有关), 能决定是否走代理链还是走自己拦截的其他逻辑

一、项目结构

二、定义切面类、连接点注解类


PointCut连接点注解类

说明:

这是一个注解类型:@interface

类中设置了一个methodName属性;


定义切面类

说明:

  • @Around定义了此方法为 Around增强处理方法;
  • @annotation(around):参数around应该与增强处理方法中的参数名保持一致,该声明指定了pointcut连接点,也可以使用其他方式,如:

 pointcut="execution(* org.crazyit.app.service.impl.*.*(..))";

  • point.proceed()调用了目标方法,并获取其返回值;

三、为待增强的方法--添加注解声明

在上面定义@Around增强时,通过@annotation() 方式指定了pointcut,其中方法参数为连接点注解类aroundAuthority

如果需要对某一方法进行增强,只需要在相应的方法上添加上此注解即可,如下:

四、AspectJ配置文件

五、测试类

六、测试结果

可能的输出结果:





@Around环绕增强相关推荐

  1. Spring-AOP 通过配置文件实现 环绕增强

    文章目录 概述 实例 概述 环绕增强允许在目标类方法调用前后织入横切逻辑,它综合实现了前置,后置增强两者的功能. 实例 代码已托管到Github-> https://github.com/yan ...

  2. springBoot AOP环绕增强、自定义注解、log4j2、MDC

    (一)log4j2 maven配置 <dependency><groupId>org.springframework.boot</groupId><artif ...

  3. 前置,后置,环绕,异常增强(示例)

    ----------------------------------基础架构: 前置增强 ------------------------------------代码演示: public interf ...

  4. aop的四种增强以及JDK动态代理、Cglib动态代理

    动态代理 AOP底层实现:有接口自动应用的就是JDK动态代理 (1).JDK 在运行时运行时注入 本质:在内存中构建出接口的实现类 特点:被代理对象,必须有接口 实例: import java.lan ...

  5. Spring AOP增强(Advice)

    Sring AOP通过PointCut来指定在那些类的那些方法上织入横切逻辑,通过Advice来指定在切点上具体做什么事情.如方法前做什么,方法后做什么,抛出异常做什么. 再来看一下图 定义Point ...

  6. 定义一个包含增强方法的javaBean(最终增强)

    使用Schema 1.AroundLogger类 1 //定义一个包含增强方法的javaBean 2 public class AroundLogger{ 3 //注解方式的环绕增强处理 4 priv ...

  7. Java中after注解_Spring(12):使用注解(@AfterThrowing/@After/@Around)实现AOP异常增强与实例...

    2017/12/31 [1]异常抛出增强: 在包(com\smbms\AopLog)新建一个ErrorLogger.java: package com.smbms.AopLog; import org ...

  8. Spring : Spring AOP 中的增强(Advice)或者通知

    1.美图 2.概述 概念参考:Spring :Spring AOP 中的一些术语 很多人将增强理解为通知,但是理解为增强会更加准确,因为它表示在连接点上执行的行为,这个行为是目标类类所没有的,是为目标 ...

  9. 【spring aop】连接点(Jointpoint)、切入点(Pointcut)、增强(Advice)、方面/切面(Aspect、Advisor)

    文章目录 前言 1. 先来回顾一下AOP中的一些术语 2. 增强方式简介 2.1 MethodBeforeAdvice前置增强 2.2 AfterReturningAdvice后置增强 2.3 Thr ...

最新文章

  1. 5G通信应用到无人驾驶要解决什么问题
  2. 对高并发流量控制的一点思考
  3. java 多线程同步问题_Java多线程同步问题:一个小Demo完全搞懂
  4. dispatcherServlet 真正处理请求的源码解析
  5. Mac怎么合并文件夹
  6. js实现页面滚动,菜单固定
  7. 计算机毕业设计-ssm超市进销存管理系统(项目+类似文档)超市仓库管理系统javaweb-超市库存预警管理系统源码
  8. SI4463配置软件wds3
  9. T3及报税软件报表使用无线打印机打印凭证没反应
  10. word一打字就有下划线_[word文档打字有下划线]下划线粗细不一致的原因:控制Word下划线与文字的距离...
  11. 爆款公众号:如何打造爆款公众号文章?公众号文章如何突破10w+?
  12. Video Caption Tutorial
  13. 入门3D建模学习教程,让你最快从小白到建模大师!
  14. 变态矿工源码、闪电鸡app等软件的应用及发展方向的个人见解
  15. 前段听一个仁兄说jbpm4 改变了很多
  16. Android openGl开发详解(二)——通过SurfaceView,TextureView,GlSurfaceView显示相机预览(附Demo)
  17. 【DBA笔记2】Oracle之定期清理inactive会话
  18. MySQL修改表的字段长度
  19. 期末总结 : 2019-2020(2)
  20. python 绘制五星红旗(包含三角函数)

热门文章

  1. 转]udev实现原理(含检测U盘拔插例子)检测热插拨 (hotplug)
  2. 残疾人求职阿里巴巴等了八年!好辛苦!
  3. ArcGIS之经纬度表格数据转矢量
  4. 2023年全国最新二级建造师精选真题及答案56
  5. DiskGenius 5.4.6.1441 Portable
  6. CCF201509-1数列分段(C语言)
  7. java和vr联系_VR,AR,MR的区别与联系
  8. 龙讯LT8911EXB高性能MIPI转EDP分辨率1080P概述
  9. 微信小程序---手写签名(签字版)
  10. The Civil War in France translation04