Spring的AOP注解配置及示例

本文详细介绍了Spring的AOP注解配置,包括@Aspect切面、@Before前置、@AfterReturing后置、@Around环绕、@AfterThrowing异常通知等注解的用法,并提供了具体的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Spring的AOP注解配置

1.1 AOP注解前提

<!-- 开启AOP注解 -->
<aop:aspectj-autoproxy/>

1.2 AOP常用注解

1.2.1 @Aspect切面注解

  • 类注解,表明该类是一个切面类
  • 不需要添加任何参数

1.2.2 @Before前置通知注解

  • 前置通知注解,value为切点表达式
  • @Before(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.save(…))”)

1.2.3 @AfterReturing后置通知注解

  • 后置通知注解,value为切点表达式,returning为返回值(非必须)
  • 方法可以有参数:Object result
  • @AfterReturning(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.delete(…))”, returning = “result”)

1.2.4 @Around环绕通知注解

  • 环绕通知注解,value为切点表达式
  • 方法需要参数:ProceedingJoinPoint joinPoint
  • joinPoint.proceed()的前后添加环绕代码
  • @Around(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.update(…))”)

1.2.5 @AfterThrowing异常通知注解

  • 异常通知注解,value为切点表达式,throwing为异常对象(非必须)
  • 方法可以有参数:Throwable e
  • @AfterThrowing(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.find(…))”, throwing = “e”)

1.2.6 @Before前置通知注解

  • 最终通知注解,value为切点表达式
  • @After(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.find(…))”)

1.2.7 @Pointcut切点注解

  • 切点注解,不可以有参数,当不想在通知上写表达式可使用
  • @Pointcut(value = “execution(* com.zgd.learn.spring.demo03.OrderDao.find(…))”)
	// 引入切点
	@After(value = "AspactAnno.pointcut1()")
    public void after()
    {
   
        System.out.println("=========最终通知=========");
    }
    // 定义一个切点
	@Pointcut(value = "execution(* com.zgd.learn.spring.demo03.OrderDao.find(..))")
    public void pointcut1(){
   }

1.3 AOP注解示例

1.3.1 开启注解配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx" 
        xmlns:context="http://www.springframework.org/schema/context" 
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop http:/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值