(Spring)注解的通知类型

1、通知类型

     *   @Before                     ---  前置通知

     *   @AfterReturning        ---  后置通知

     *   @Around                    ---  环绕通知(目标对象默认不执行,需要手动执行)

     *   @After                        ---  最终通知

     *   @AfterThrowing         ---  异常抛出通知


2、配置通用的切入点

     *   使用 @Pointcut 定义通用的切入点

/**
 * 自定义切入点
 */
@Pointcut(value="execution(public * com.jadan.demo1.CustomerDaoImpl.save())")
public void fn() {}

     最终通知:

/**
 * 注解方式的切面类
 */
@Aspect
public class MyAspectAnno {
	/**
	 * 自定义切入点
	 */
	@Pointcut(value="execution(public * com.jadan.demo1.CustomerDaoImpl.save())")
	public void fn() {}
	
	/**
	 * 最终通知:方法执行成功或者出现异常,都会执行
	 */
	@After(value="MyAspectAnno.fn()")
	public void after() {
		System.out.println("最终通知...");
	}
}

     环绕通知:

/**
 * 注解方式的切面类
 */
@Aspect
public class MyAspectAnno {
	/**
	 * 自定义切入点
	 */
	@Pointcut(value="execution(public * com.jadan.demo1.CustomerDaoImpl.save())")
	public void fn() {}

	/**
	 * 环绕通知
	 */
	@Around(value="MyAspectAnno.fn()")
	public void around(ProceedingJoinPoint joinPoint) {
		System.out.println("环绕通知Start...");
		try {
			// 让目标对象的方法执行,因为默认环绕通知是不执行目标方法的
			joinPoint.proceed();
		} catch (Throwable e) {
			e.printStackTrace();
		}
		System.out.println("环绕通知End...");
	}
}


下一篇:Spring框架的JDBC模板技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值