切入点表达式说明
切入点表达式说明
aop:pointcut配置切入点表达式
1 <aop:pointcut expression="execution(public void com.service.impl.CustomerServiceImpl.saveCustomer())" id="pt1"/>
表达式语法:
1 execution([修饰符] 返回值类型 包名.类名.方法名(参数)) 2 3 execution( public void com.service.UserServiceImpl.saveCustomer(Customer customer) )
对表达式进行优化
1.全匹配写法
1 execution( public void com.service.UserServiceImpl.saveCustomer(Customer customer) )
2.默认 public
可以省略
1 execution( void com.service.UserServiceImpl.saveCustomer(Customer customer) )
3.匹配任何返回值
1 execution( * com.service.UserServiceImpl.saveCustomer(Customer customer) )
4.参数列表可以使用 *
, 表示可以是任何的数据类型,但必须有参数
1 execution( * com.service.UserServiceImpl.saveCustomer( * ) )
5.参数列表可以使用 ..
表示有无参数均可,有参数可以是任意类型
1 execution( * com.service.UserServiceImpl.saveCustomer( .. ) )
6.包名可以使用*号,表示任意包,但是有几级包,需要写几个
1 execution( * *.*.UserServiceImpl.saveCustomer( .. ) )
7.使用..来表示当前包,及其子包
1 execution( * com..UserServiceImpl.saveCustomer( .. ) )
8.类名可以使用*号,表示任意类
1 execution( * com..*.saveCustomer( .. ) )
9.类名也可以使用 *
加后缀,表示这个后缀的所有类
1 execution( * com..*ServiceImpl.saveCustomer( .. ) )
10.方法名可以使用*
号,表示任意方法
1 execution( * com..*.* ( .. ) )
11.全通配方式
1 execution( * *..*.* ( .. ) )