目录
前言
今天在写系统权限校验时发现某个含有切点注解的方法进不去切面类,单元测试了下,发现在单个类内的方法调用是不能够进入切
面中的,这就说明在内部方法调用时并未使用代理对象进行代理。
Aop小案例
为了验证这个现象,我们写个Aop的小例子,注意本案例是基于SpringBoot 2.1.3版本
首先自定义一个注解,用于标识切点:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TestCheckPoint {
}
然后定义一个切面类:
@Component
@Aspect
public class TestAspect {
private static final Logger logger = LoggerFactory.getLogger(TestAspect.class);
@Before("@annotation(tp)")
public void beforMethod(JoinPoint joinPoint, TestCheckPoint tp) {
logger.info("Before method...");
}
@After("@annotation(tp)")
public void afterMethod(JoinPoint joinPoint, Test