`
如若_晴
  • 浏览: 108370 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

spring aop中增强处理的介绍(before和around)

阅读更多
  spring aop可以对业务模块进行切面编程,实现对业务类的增强处理,从而控制业务的执行,aop中有before,around,afterReturning,afterThrowing,after 共5种增强处理,从各种角度实现对业务类方法的控制增强处理。
1、before增强处理
   用途:用于在业务方法执行前进行一些处理
   用法:①用@Before("execution(* package.*.*(..))")声明
         ②定义增强处理方法,紧跟在声明后面,比如:
           public void beforeTest(JointPoint jp){
                System.out.println("目标方法执行前...");
              jp.proceed();//执行目标方法
           }
  
2、around增强处理
   around功能强大,类似撒手锏,不到必要的时候不轻易用
   用途:可以决定是否执行目标方法,什么时候执行,甚至可以改变目标方法的参数和获取执行后的返回值,兼具了before和afterReturn的功能。
   用法:①用@Around("execution(* package.*.*(..))")声明
         ②定义增强处理方法,紧跟在声明后面,比如:
           public void aroundTest(ProceedingJointPoint jp)        {//该处可以有多个参数,ProceedingJointPoint 是必须要有的参数
              System.out.println("目标方法执行前...");
              String ret= jp.proceed(new String[]{"被改变的参数"});//执行目标方法,通过传入参数来修改目标函数的参数,但是参数个数和类型必须和目标方法对于,否则报错
                  System.out.println("返回值:"+ret);
              
           }
    什么时候用:①线程安全的环境下才能用②需要控制目标函数的执行,或者在目标函数执行前后需要共享某种数据状态时用
分享到:
评论

相关推荐

    spring aop API示例

    演示了spring对aop的before、after、throw、around几种advice的api操作。

    Spring  AOP实现方法大全

    在Spring1.2或之前的版本中,实现AOP的传统方式就是通过实现Spring的AOP API来定义Advice,并设置代理对象。Spring根据Adivce加入到业务流程的时机的不同,提供了四种不同的Advice:Before Advice、After Advice、...

    spring aop 实现源代码--xml and annotation(带lib包)

    在Spring1.2或之前的版本中,实现AOP的传统方式就是通过实现Spring的AOP API来定义Advice,并设置代理对象。Spring根据Adivce加入到业务流程的时机的不同,提供了四种不同的Advice:Before Advice、After Advice、...

    Spring AOP详细介绍.docx

    (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around (4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式 (5)AOP代理:AOP框架...

    深入解析Spring AOP源码:从原理到实现,全方位掌握Java AOP编程精髓

    Spring AOP支持不同类型的通知,如前置通知(Before)、后置通知(After)、返回后通知(After-returning)、抛出异常后通知(After-throwing)和环绕通知(Around)。这种机制使得开发者可以在运行时动态地应用这些...

    Spring AOP配置源码

    <aop:before method="before" pointcut-ref="pointCut"/> aop前置通知 <aop:after method="after" pointcut-ref="pointCut"/> aop后置通知, <aop:after-throwing method="exception" pointcut-ref="pointCut"/> aop...

    Spring的AOP IOC

    一个机遇Spring3的入门小案例,里面主要简单演示了Spirng配置文件如何配置自动扫描包,控制类、服务类、Dao类如何加注解,被IOC扫描...还有AOP例子的演示,有before after afterreturn afterthrow,还有around等的演示

    【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知

    在微服务流行的当下,在使用SpringCloud/Springboot框架开发中,AOP使用的非常广泛,尤其是@Aspect注解方式当属最流行的,不止功能强大,性能也很优秀,还很舒心!所以本系列就结合案例详细介绍@Aspect方式的切面的...

    Spring AOP @Aspect 基本用法

    3.1、@Before,前置通知,放在方法头上。 3.2、@After,后置【finally】通知,放在方法头上。 3.3、@AfterReturning,后置【try】通知,放在方法头上,使用returning来引用方法返回值。 3.4、@AfterThrowing,...

    Spring AOP demo

    <aop:before method="beforeMethod" pointcut-ref="pointcut1"/> <aop:around method="aroundMethod" pointcut-ref="pointcut2"/> </aop:aspect> </aop:config> ``` Java 类 ```java public class LoggingAspect...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1....

    AOP 和 Aspect 注解切入 测试 Demo

    基于 MethodBeforeAdvice、AfterReturningAdvice 利用 Spring Api 定义前、后置处理方法,并通过代理工厂类获取代理对象(代码或Xml配置实现) 2.ProxyFactoryBean 显式地设置 Advisors、Advice、Target等(基于代理...

    Javascript aop(面向切面编程)之around(环绕)分析

    Aop又叫面向切面编程,其中“通知”是切面的具体实现,分为before(前置通知)、after(后置通知)、around(环绕通知),用过spring的同学肯定对它非常熟悉,而在js中,AOP是一个被严重忽视的技术点。但是利用aop...

    SpringFramework中的面向方面编程(AOP),第二部分

    火龙果软件工程技术中心 在本系列的第一部分,...比起第一部分中介绍的那些通知类型,around形式的通知是一种更具侵入性也更强大的面向对象概念。本文将描述around通知的每个特性,以便您可以在自己的SpringAOP应用程

    开源框架 Spring Gossip

    Before Advice After Advice Around Advice Throw Advice Pointcut、Advisor Pointcut 定义了 Advice 的应用时机,在 Spring 中,使用 PointcutAdvisor 将 Pointcut 与 Advice 结合成为一个...

    Aspect自定义springboot的使用.docx

    通知有不同类型,包括"around","before"和"after"通知。许多AOP框架包括Spring,将通知建模成一个拦截器,并且围绕连接点维持一个拦截器链。 切入点(Pointcut):是指匹配连接点的一个断言。通知是和一个切入点...

    JavaEE AOP源码

    AOP 面向切面的编程思想。 Spring的主要特性之一,今天我整理了一下,小牛试刀,写了一个Demo分享给大家。 切面最主要的功能是在不影响主业务方法逻辑的情况下,在执行业务方法之前或之后加入执行代码。 在JavaEE...

    Spring注解 - 52注解 - 原稿笔记

    注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before , @Component , @ComponentScan , @ComponentScans , @...

    JavaScript中AOP的实现与应用

    使用过java spring的同学一定知道,其内分为三种通知,before(前置通知)、after(后置通知)、around(环绕通知)。 下面我们分别在js调用方法时实现这三种通知: before(前置通知) 顾名思义,就是在函数调

Global site tag (gtag.js) - Google Analytics