1. 程式人生 > >Spring中遇到的問題之aop execution語句

Spring中遇到的問題之aop execution語句

在學習aop的時候配置applicationContext.xml檔案時,在使用execution語句時出現了一個問題

execution 語句格式:

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)

其中
第一個是修飾符(modifiers-pattern)
第二個是返回值(ret-type-pattern)
第三個方法的包名(declaring-type-pattern)
第四個是方法名(name-pattern)
第五個方法引數(param-pattern)
第六個丟擲的異常型別(throws-pattern)

注:帶?表示可有可無

下面表示一個使用 public的方法
execution(public * *(..)) 因為返回型別和方法名必須有 所以是兩個**

以set開始的方法名(注* 和set之間有個空格,這就是我後面出現的問題)
execution(* set*(..))

the execution of any method defined in the service package or a sub-package:
//使用service 包下及子包的方法
execution(* com.xyz.service..*.*(..))
還有很多用法可以參考spring給的參考文件

在使用aop的時候使用的execution語句:
execution(*aop.PersonDaoImpl.*(..))
粗心的沒有加*和a之間的括號導致專案執行不成功!!!