切点表达式与通知类型

32 切入点表达式

描述方式一

描述接口

描述方式二

描述实现类

切入点表达式标准格式
execution (访问控制修饰符 返回值 包名.类/接口名.方法名(参数) 异常名)

可以使用通配符

* 单个独立的任意符号

..  多个连续的任意符号,可以独立出现,常用于简化包名和参数的书写。

@PointCut("execution(void com.itheima.dao.BookDao.update())")
@PointCut("execution(void com.*.*.*.update())")
@PointCut("execution(void *..update())")

//给所有业务层查询方法加AOP
@Pointcut("execution(* com.itheima.*.*Service.find*(..))")

书写技巧

代码按照规范,否则技巧失效。
切入点通常描述接口,不描述实现类。

33 AOP通知类型

环绕通知(重点)

//前后都有
@Around("pt()")
public void around(ProceedingJointPoint pjp){
    sout("around");
    //标识对原始操作的调用
    pjp.proceed();
    sout("around after");
}
测试有返回值情况
@Around("pt()")
public Object aroundSelect(ProceedingJointPoint pjp){
    sout("around before");
    //对原始操作调用
    Object ret=pjp.proceed();
    sout("around after");
    return ret;
}


@AfterReturning
只有当上面方法没有抛异常正常执行才生效
@AfterThrowing
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值