表達式 | 含義 |
.* |
在路徑表達上 代表當前包通配, 在表達方法上是 代表當前類所有方法 |
..* |
在路徑表達上 代表當前包及子包通配, 在表達方法上是 代表當前包及子包所有類的所有方法 |
栗子:
@Pointcut("execution(public * com.*.path..controller..*.*(..))")
public :匹配所有目標類的public方法,不寫則匹配所有訪問權限
第一個 * :方法返回值類型,*代表所有類型
第二個 * :包路徑的通配符,即com與path之間有一個包名
.. :表示當前包及子包,即忽略path與controller中間的路徑
第三個 ..* :表示controller這個包及子包下所有的類
第四個 *(..) : *表示所有任意方法名,..表示任意參數
@Pointcut("execution(public * com.path.*Config.get*(..) || execution(public * com.path..*.*Property.get*(..)))")
public :匹配所有目標類的public方法,不寫則匹配所有訪問權限
*Config :表示匹配任何以Config結尾的類
get*(..) :表示匹配任何以get開頭的方法