浅学Springboot中AOP

在做完项目后决定在巩固一下aop的知识点。

从注释写起吧。

@Aspect 声明创建一个切面类

@Around,@Before,@After :分别为环绕通知,前置通知和后置通知 。

@Around此注解标注的通知方法在目标方法前后都被执行。

代码如下:

@Around("rolePointCut()")
public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable {
    //目标对象调用的切入点方法
    Object result = pjp.proceed();
    return result;
}

在执行pjp.proceed()方法前后都可以增加代码来完善功能,@Before就是在执行被切方法前执行,@After就是在执行被切方法后执行,ProceedingJoinPoint pjp,这个对象@Before和@After用不着,只有@Around用。

        那么在刚才代码中@Around("rolePointCut()"),rolePointCut()是干嘛的呢?

这个叫做切入点表达式被绑定的方法(随便起名字即可)。我们先讲切入点@Pointcut。里面需要绑定切入点表达式。通常有两种方式,execution()方法的签名来匹配。格式如:execution(访问修饰符? 返回值   包名.类名.?  方法名(方法参数)  throws  异常?)。带?表示可以省略掉的部分:访问修饰符,包名.类名,throws异常。第二种:annotation借助自定义注解。

首先自定义注解:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyLog {
}
然后在切面类通知中引用
@Pointcut("@annotation(com.briup.anno.MyLog)")
private void pc() {}
在业务类上添加注解可使用。
        一般来说过程是这样:先定义@Aspect和@Component两个组件声明切面类。之后定义切入点表达式被绑定的方法(方法名随意)重要的是@Pointcut这个切入点,绑定好切入点表达式之后,在下面写通知方法和切面,即@Around(切入点表达式被绑定的方法)下面写切面内容即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值