Spring Aop - Aspect 使用方法

本文深入探讨了Spring AOP中的@EnableAspectJAutoProxy注解,阐述其启用AspectJ自动代理的原理。通过示例说明如何创建切面类,利用@Component注解注册为Spring组件,并详细解释了@PointCut、@Before、@After、@AfterReturning、@AfterThrowing和@Around等通知注解的使用方法。示例中展示了如何定义切入点、执行前置、后置、返回后和异常后的操作,以及环绕通知的实现。
摘要由CSDN通过智能技术生成

在配置类中使用 @EnableAspectJAutoProxy 才能使Aspect生效,在这篇文章中详细分析该注解的作用原理
切面类使用 @Aspect 声明,同时需要@Component注册为组件(或用其他方式,Aspect不会自动注册为Spring组件)
切面类有以下主要功能(用法详见代码部分):

  • @PointCut:使用execution切入表达式声明需要增强的方法(其他注解也可直接声明,但为了防止代码冗余,可使用此注解标注一个方法,再在其他注解中直接引用该方法即可)
  • @Before:方法执行前调用
  • @After:方法执行后调用
  • @AfterReturning:方法返回结果后调用(执行后),returning参数指定返回结果
  • @AfterThrowing:抛出异常后调用,throwing参数指定异常信息
  • @Around:环绕通知,可以手动调用方法执行并返回结果,使用ProceedingJoinPoint参数调用。
  • JoinPoint:可作为被标注的方法的参数传入,有很多有用的get方法

例子:
先看结果
正常执行
发生异常
简要代码

切面类:

@Aspect
@Component
public class Log {
   
    @Pointcut(value = "execution(public int cap.other.Div.*(..))")
    private void pointCut(){
   }

    @Before("pointCut()")
    private void logStart(@NotNull JoinPoint joinPoint){
   
        System.out.println("Start>>> Args:" + Arrays.asList(joinPoint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值