spring配置事务的时候会指定切点。这是使用正则表达式进行匹配。常见格式如下:
<aop:pointcut id="transactionPointcut" expression="execution(* com.zkw.service..*(..))" />
最常使用execution进行匹配。execution()中有三个必填的属性。返回值类型、切点的路径、切点的参数。如果将切点对应到函数方法上,三个参数可以理解为函数的返回值、函数名以及函数的传入参数。返回值参数与路径参数之间有一个空格,路径参数与切点之间通过()联系。
*代表匹配任意值。
如:execution(* get(..))
表示方法名为get的不限返回值和传入参数类型的切点。
execution(String get(*, String))
表示返回类型为String,传入参数第一个不限第二个为String的名为get的切点。
(..)括号中的两个点表示传入的参数类型和个数都不限。
如:execution(* get*(..))
表示以get开头的传入参数和返回值都不限的切点。
.代表路径,路径参数中两个点一起用表示在当前包以及子包中。
如:execution(* com.zkw.service..*(..))
表示在service包及其子包中的任意方法。
又如:execution(* com.zkw..get*(..))
表示在zkw包中及其子包中以get开头的任意方法。