注解支持
<aop:aspectj-autoproxy/>
// 切面类
package org.xyz;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class AspectModule {
// 在切面类中使用pointcut对切面方法进行修饰
@Pointcut("execution(* com.xyz.myapp.service.*.*(..))") // expression
private void businessService() {} // signature
@Pointcut("execution(* com.tutorialspoint.Student.getName(..))")
private void getname() {}
// 如果你已经在xml中配置了一个pointcut切点,则可以使用下面这些执行注解
@Before("businessService()")
public void doBeforeTask(){
...
}
@After("businessService()")
public void doAfterTask(){
...
}
@AfterReturning(pointcut = "businessService()", returning="retVal")
public void doAfterReturnningTask(Object retVal){
// you can intercept retVal here.
...
}
@AfterThrowing(pointcut = "businessService()", throwing="ex")
public void doAfterThrowingTask(Exception ex){
// you can intercept thrown exception here.
...
}
@Around("businessService()")
public void doAroundTask(){
...
}
}