这篇文章将为大家详细讲解有关使用spring aop如何配置AspectJ注解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。采用的jdk代理,接口和实现类代码请参考上篇博文。主要是将Aspe
这篇文章将为大家详细讲解有关使用spring aop如何配置AspectJ注解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
采用的jdk代理,接口和实现类代码请参考上篇博文。主要是将Aspect类分享一下:
package com.tgb.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.DeclareParents; import org.aspectj.lang.annotation.Pointcut; @Aspect public class AspceJAdvice { @Pointcut("execution(* find*(..))") private void aspectjMethod(){}; @Before("aspectjMethod()") public void beforeAdvice(JoinPoint joinPoint) { System.out.println("-----beforeAdvice().invoke-----"); System.out.println(" 此处意在执行核心业务逻辑前,做一些安全性的判断等等"); System.out.println(" 可通过joinPoint来获取所需要的内容"); System.out.println("-----End of beforeAdvice()------"); } @After(value = "aspectjMethod()") public void afterAdvice(JoinPoint joinPoint) { System.out.println("-----afterAdvice().invoke-----"); System.out.println(" 此处意在执行核心业务逻辑之后,做一些日志记录操作等等"); System.out.println(" 可通过joinPoint来获取所需要的内容"); System.out.println("-----End of afterAdvice()------"); } @Around(value = "aspectjMethod()") public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable { System.out.println("-----aroundAdvice().invoke-----"); System.out.println(" 此处可以做类似于Before Advice的事情"); //调用核心逻辑 Object retVal = pjp.proceed(); System.out.println(" 此处可以做类似于After Advice的事情"); System.out.println("-----End of aroundAdvice()------"); return retVal; } @AfterReturning(value = "aspectjMethod()", returning = "retVal") public void afterReturningAdvice(JoinPoint joinPoint, String retVal) { System.out.println("-----afterReturningAdvice().invoke-----"); System.out.println("Return Value: " + retVal); System.out.println(" 此处可以对返回值做进一步处理"); System.out.println(" 可通过joinPoint来获取所需要的内容"); System.out.println("-----End of afterReturningAdvice()------"); } @AfterThrowing(value = "aspectjMethod()", throwing = "ex") public void afterThrowingAdvice(JoinPoint joinPoint, Exception ex) { System.out.println("-----afterThrowingAdvice().invoke-----"); System.out.println(" 错误信息:"+ex.getMessage()); System.out.println(" 此处意在执行核心业务逻辑出错时,捕获异常,并可做一些日志记录操作等等"); System.out.println(" 可通过joinPoint来获取所需要的内容"); System.out.println("-----End of afterThrowingAdvice()------"); } }
--结束END--
本文标题: 使用Spring Aop如何配置AspectJ注解
本文链接: https://lsjlt.com/news/227108.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0