在切入點表示式中, spring允許使用**&&, || , ! **等符號, 以便於定義一些複雜的切入點表示式.2.1 && / and&& / and: 取兩個表示式的交集
|| / or: 取兩個表示式的並集(也就是兩個表示式都會滿足)
!: 排除當前表示式,取相反結果
2.1.1 xml配置
語法:
<
aop:config
>
<
aop:aspect
ref=
"通知類"
>
<
aop:通知型別
method
="方法名"
pointcut
="表示式1 and 表示式2"
>
aop:before
>
aop:aspect
>
aop:config
>
注意:
獲取的是**「表示式1"和"表示式2」**的交集2.1.2 註解配置xml配置中,"表示式1"和"表示式2"之間只能使用and.不能使用**&&**
pointcut-ref不支援該種寫法
語法:
@aspect
public
class
myadvice
@pointcut
("表示式1"
)public
voidp1(
)@pointcut
("表示式2"
)public
voidp2(
)}
注意:
獲取的是**「表示式1"和"表示式2」**的交集2.2 || / or註解配置中,"表示式1"和"表示式2"之間只能使用&&符號. 不能使用and
支援**「p1() && p2()」**寫法
2.2.1 xml配置
語法:
<
aop:config
>
<
aop:aspect
ref=
"通知類"
>
<
aop:通知型別
method
="方法名"
pointcut
="表示式1 or 表示式2"
>
aop:before
>
aop:aspect
>
aop:config
>
注意:
獲取的是**「表示式1"和"表示式2」**的並集, 也就是兩個表示式匹配到的方法都會被增強2.2.2 註解配置xml配置中,"表示式1"和"表示式2"之間既可以使用or.也可以使用**||**
pointcut-ref不支援該種寫法
語法:
@aspect
public
class
myadvice
@pointcut
("表示式1"
)public
voidp1(
)@pointcut
("表示式2"
)public
voidp2(
)}
注意:
獲取的是**「表示式1"和"表示式2」**的並集, 也就是兩個表示式匹配到的方法都會被增強2.3 ! 非註解配置中,"表示式1"和"表示式2"之間只能使用||, 不能使用or支援**「p1() || p2()」**寫法
2.3.1 xml配置
語法:
<
aop:config
>
<
aop:aspect
ref=
"通知類"
>
<
aop:通知型別
method
="方法名"
pointcut
="!表示式"
>
aop:before
>
aop:aspect
>
aop:config
>
注意:
獲取的是通知類中,非表示式的方法2.3.2 註解配置pointcut-ref不支援該種寫法
語法:
@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 ...