Мне нужно объяснение точечной резки Spring AOP - PullRequest
0 голосов
/ 02 марта 2011

Я видел два варианта паттернов точечной резки:

Это

execution(* some.package.*.*(..))

и это

execution(* some.package.* *(..))

Что означает точка (или ее значение)отсутствие) между двумя последними * х?

1 Ответ

1 голос
/ 02 марта 2011

Это приложение определяет грамматику языка выражения pointcut. Для выражения выполнения правило следующее:

execution(MethodPattern)

, где

MethodPattern = 
  [ModifiersPattern] TypePattern 
        [TypePattern . ] IdPattern (TypePattern | ".." , ... ) 
        [ throws ThrowsPattern ]

Это означает, что если у вас есть 3 выражения (разделенных пробелом) перед "(", то первое - модификатор, второе - класс, а третье - имя метода. Но если у вас есть 2 выражения перед "(", то первое будет быть классом, а второй будет именем метода.

...