@Before是在所拦截方法执行之前执行一段逻辑。
@After 是在所拦截方法执行之后执行一段逻辑。
@Around是可以同时在所拦截方法的前后执行一段逻辑。
spring只支持方法连接点
@Aspect
@Component
public class LogIntercept {
@Pointcut ( "execution(* com.ncx.controller.*.*(..))" )
public void recordLog(){}
@Before ( "recordLog()" )
public void before() {
this .printLog( "已经记录下操作日志@Before 方法执行前" );
}
@Around ( "recordLog()" )
public void around(ProceedingJoinPoint pjp) throws Throwable{
this .printLog( "已经记录下操作日志@Around 方法执行前" );
pjp.proceed();
this .printLog( "已经记录下操作日志@Around 方法执行后" );
}
@After ( "recordLog()" )
public void after() {
this .printLog( "已经记录下操作日志@After 方法执行后" );
}
private void printLog(String str){
System.out.println(str);
}
}