1. 程式人生 > >Spring aop expression 星號(*)

Spring aop expression 星號(*)

   <aop:config>
          <aop:pointcut id="allMethod" expression="execution(* *..BookManager.save(..))"/>
  </aop:config>

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)
其中帶問號的modifiers-pattern?(public/protected) 和 declaring-type-pattern? throws-pattern? 可以不填

execution(* *..BookManager.save(..))的解讀:
第一顆* 代表ret-type-pattern 返回值可任意,
*..BookManager 代表任意Pacakge裡的BookManager類。
如果寫成com.xyz.service.* 則代表com.xyz.service下的任意類
如果寫成com.xyz.service.*.* 則代表com.xyz.service下的任意類的任意方法
com.xyz.service..* com.xyz.service則代表com.xyz.service及其子package下的任意類
save代表save方法,也可以寫save* 代表saveBook()等方法
(..) 匹配0個引數或者多個引數的,任意型別
(x,..) 第一個引數的型別必須是X
(x,,,s,..) 匹配至少4個引數,第一個引數必須是x型別,第二個和第三個引數可以任意,第四個必須是s型別。