Spring AOP编程增强表达式

1. Spring中通过切入点表达式定义具体切入点

指示符作用
bean用于匹配指定包名下类型内的方法执行
within用于匹配指定包名下类型内的方法执行
execution用于进行细粒度方法匹配执行具体业务
@annotation用于匹配指定注解修饰的方法执行

1.1 bean表达式应用于类级别,实现粗粒度的控制:

bean(“userServiceImpl”))指定一个类中所有方法
bean("*ServiceImpl")指定所有的后缀为serviceImpl的类

1.2 Within表达式应用增强 ,应用于类级别

within(“aop.service.UserServiceImpl”)指定类,只能指定一个类
within(“aop.service.*”)只包括当前目录下的类
within(“aop.service…*”)指定当前目录包含所有子目录中的类

1.3 execution表达式应用于方法级别,细粒度的控制:

execution(void aop.service.UserServiceImpl.addUser())匹配方法
execution(void aop.service.PersonServiceImpl.addUser(String))方法参数必须为字符串
execution(* aop.service….(…))万能配置

1.4 @annotaion表达式应用于方法级别,实现细粒度的控制:

@annotation(com.jt.common.anno.RequestLog))指定一个需要实现增强功能的方法

AOP编程中有五种类型的通知:

  1. 前置通知 (@Before) 方法执行之前执行
  2. 返回通知 (@AfterReturning) 方法return之后执行
  3. 异常通知 (@AfterThrowing) 方法出现异常之后执行
  4. 后置通知 (@After) : 又称之为最终通知(finally)
  5. 环绕通知 (@Around) :重点

@AfterReturning和@After容易混淆,后置通知和异常通知不会同时出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值