3.8 @Pointcut的表達式-execution


戴着假發的程序員出品  抖音ID:戴着假發的程序員  歡迎關注

[查看視頻教程]

上一章我們講解@Pointcut的含義和用法,這一章我將詳細講解和羅列spring中的@Pointcut中表達式的寫法。

Spring AOP 支持以下 AspectJ 切入點指示符(PCD)用於切入點表達式:

用於匹配方法執行連接點。這是使用 Spring AOP 時使用的主要切入點指示符。這種方式是我們最常用的方式,是通過類似於正則表達式的方式實現pointcut的配置。

*表示通配符, 方法中沒有參數就表示匹配沒有參數的方法saveBook() ,一個點就表示匹配有一個參數的方法saveBook(.),方法中兩個點表示匹配任意參數的方法saveBook(..)。 方法中saveBook(.,String) 表示匹配第一個任意參數,第二個是String類型參數的方法。

我們來看spring官方給出的案例:

執行任何公共方法:

執行任何公共方法:

execution(public * *(..))

執行 name 以set開頭的任何方法:

execution(* set*(..))

執行AccountService接口定義的任何方法:

execution(* com.st.dk.service.AccountService.*(..))

執行service包中定義的任何方法:

execution(* com.st.dk.service.*.*(..))

執行service包中定義的任何方法或其中一個 sub-packages:

execution(* com.st.dk.service..*.*(..))

比如我們上一章中的案例可以修改為:

@Pointcut("execution(* com.st.dk.demo7.service.BookService.*.*(..))")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM