Press "Enter" to skip to content

Spring 切面、切点小结

intellifrog 0

随着最近做的项目规模越来越大,切面和切点的合理使用已经十分必要了。切点(PointCut)是包含在切面(Aspect)的定义中的。

1. 场景
现在我有一个service文件,里面有若干service的方法,我需要在每个service方法执行结束后,做一些操作(比如打印日志)。当然我不可能直接修改service层的代码,从代码结构以及工作量以及日后维护显然都是不可以的。
2. 刚才所说的场景,其实就可以定义为一个切面。

@Aspect
public class LogRecordAspect {

    @Pointcut("execution(public * org.crown.controller.*RestController.*(..))")
    @SuppressWarnings("EmptyMethod")
    public void pointCut() {
    }

    @AfterReturning(returning = "ret", pointcut = "pointCut()")
    public void doAfterReturning(Object ret) {
        LogUtils.doAfterReturning(ret);
    }

}

发表评论

电子邮件地址不会被公开。