Spring切入點表示式的擴充套件寫法

2021-10-02 01:48:06 字數 3266 閱讀 5373

在切入點表示式中, spring允許使用**&&, || , ! **等符號, 以便於定義一些複雜的切入點表示式.

&& / and: 取兩個表示式的交集

|| / or: 取兩個表示式的並集(也就是兩個表示式都會滿足)

!: 排除當前表示式,取相反結果

2.1 && / and

2.1.1 xml配置

語法:

<

aop:config

>

<

aop:aspect

ref=

"通知類"

>

<

aop:通知型別

method

="方法名"

pointcut

="表示式1 and 表示式2"

>

aop:before

>

aop:aspect

>

aop:config

>

注意:

獲取的是**「表示式1""表示式2」**的交集

xml配置中,"表示式1"和"表示式2"之間只能使用and.不能使用**&&**

pointcut-ref不支援該種寫法

2.1.2 註解配置

語法:

@aspect

public

class

myadvice

@pointcut

("表示式1"

)public

voidp1(

)@pointcut

("表示式2"

)public

voidp2(

)}

注意:

獲取的是**「表示式1""表示式2」**的交集

註解配置中,"表示式1"和"表示式2"之間只能使用&&符號. 不能使用and

支援**「p1() && p2()」**寫法

2.2 || / or

2.2.1 xml配置

語法:

<

aop:config

>

<

aop:aspect

ref=

"通知類"

>

<

aop:通知型別

method

="方法名"

pointcut

="表示式1 or 表示式2"

>

aop:before

>

aop:aspect

>

aop:config

>

注意:

獲取的是**「表示式1""表示式2」**的並集, 也就是兩個表示式匹配到的方法都會被增強

xml配置中,"表示式1"和"表示式2"之間既可以使用or.也可以使用**||**

pointcut-ref不支援該種寫法

2.2.2 註解配置

語法:

@aspect

public

class

myadvice

@pointcut

("表示式1"

)public

voidp1(

)@pointcut

("表示式2"

)public

voidp2(

)}

注意:

獲取的是**「表示式1""表示式2」**的並集, 也就是兩個表示式匹配到的方法都會被增強

註解配置中,"表示式1"和"表示式2"之間只能使用||, 不能使用or支援**「p1() || p2()」**寫法

2.3 ! 非

2.3.1 xml配置

語法:

<

aop:config

>

<

aop:aspect

ref=

"通知類"

>

<

aop:通知型別

method

="方法名"

pointcut

="!表示式"

>

aop:before

>

aop:aspect

>

aop:config

>

注意:

獲取的是通知類中,非表示式的方法

pointcut-ref不支援該種寫法

2.3.2 註解配置

語法:

@aspect

public

class

myadvice

@pointcut

("表示式1"

)public

voidp1(

)@pointcut

("表示式2"

)public

voidp2(

)}

注意:

獲取的是通知類中,非表示式的方法

註解配置中, 支援**"!p1() "**寫法

Spring框架 通用切入點表示式

配置切面 配置切入點表示式,id用於指定表示式的唯一標識,expression用於指定表示式內容 此標籤寫在aop aspect標籤內部,只能當前切面使用,如果有新的切面,只能重新配置 它還可以寫在aop aspect外面,此時可供所有切面使用 如果是放在外面,就一定要放在aspect標籤的前面 當...

execution切入點表示式

spring aop 使用者可能會經常使用execution切入點指示符。執行表示式的格式如下 execution modifiers pattern?ret type pattern declaring type pattern?name pattern param pattern throws ...

execution切入點表示式

spring aop 使用者可能會經常使用execution切入點指示符。執行表示式的格式如下 execution modifiers pattern?ret type pattern declaring type pattern?name pattern param pattern throws ...