Как определить aop: аннотацию pointcut в MultiActionController - PullRequest
0 голосов
/ 20 декабря 2010

Я новичок в Spring AOP, мне нужна помощь по

  1. У меня есть MultiActionController, это на основе аннотаций.
  2. Я определил pointcut для метода и советника в файле конфигурации Spring.
  3. я вызываю этот метод из моего контроллера.

Теперь мой вопрос: как определить аннотацию pointcut в контроллере?

Пожалуйста, дайте мне несколько советов.

Заранее спасибо.

1 Ответ

1 голос
/ 20 декабря 2010

Смысл AOP в том, что вы определяете не pointcut в целевых классах, а во внешних классах аспектов (или в случае Spring AOP на основе XML в XML).

Так что еслиу вас есть и ваш контроллер, и аспекты в одном и том же ApplicationContext (и контрольные точки соответствуют методам контроллера), советы должны применяться автоматически.

Однако есть предостережение:

Spring AOPбудет работать только стандартным способом (на основе JDK-прокси), если вы используете интерфейсы для поддержки вашего контроллера.

Если вы используете интерфейсы, учтите это примечание ( source ):

Примечание
При использовании интерфейсов контроллера (например, для проксирования AOP) обязательно последовательно размещайте все свои аннотации сопоставления, например @RequestMapping и @SessionAttributes, на интерфейсе контроллера.чем в классе реализации.

А если нет, вы должны установить proxy-target-class="true", как описано в разделе Механизмы прокси .

...