当前位置: 首页 > 图灵资讯 > 技术篇> Spring6.0从入门到精通-AOP之Advice类型

Spring6.0从入门到精通-AOP之Advice类型

来源:图灵教育
时间:2024-01-15 13:11:05
 

AOP之Advice类型

 

  1. MethodBeforeAdvice,在方法执行之前的切面逻辑

/**
 * @author 周瑜
 */
public class ZhouyuBeforeAdvice implements MethodBeforeAdvice {

	@Override
	public void before(Method method, Object[] args, Object target) throws Throwable {
		System.out.println("方法执行前执行");
	}
}

 

  1. AfterReturningAdvice,方法返回后执行的切面逻辑
/**
 * @author 周瑜
 */
public class ZhouyuAfterReturningAdvice implements AfterReturningAdvice {

	@Override
	public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
		System.out.println("方法return后执行");
	}
}

 

  1. ThrowsAdvice,方法抛异常后执行的切面逻辑
/**
 * @author 周瑜
 */
public class ZhouyuThrowsAdvice implements ThrowsAdvice {

	public void afterThrowing(Method method, Object[] args, Object target, NullPointerException ex) {
		System.out.println("方法抛出异常后执行");
	}

}

 

  1. MethodInterceptor,任意控制
/**
 * @author 周瑜
 */
public class ZhouyuAroundAdvice implements MethodInterceptor {

	@Nullable
	@Override
	public Object invoke(@NotNull MethodInvocation invocation) throws Throwable {
		System.out.println("方法执行Around前");
		Object proceed = invocation.proceed();
		System.out.println("方法执行Around后");
		return proceed;
	}
}