Смысл AOP в том, что вы определяете не pointcut в целевых классах, а во внешних классах аспектов (или в случае Spring AOP на основе XML в XML).
Так что еслиу вас есть и ваш контроллер, и аспекты в одном и том же ApplicationContext (и контрольные точки соответствуют методам контроллера), советы должны применяться автоматически.
Однако есть предостережение:
Spring AOPбудет работать только стандартным способом (на основе JDK-прокси), если вы используете интерфейсы для поддержки вашего контроллера.
Если вы используете интерфейсы, учтите это примечание ( source ):
Примечание
При использовании интерфейсов контроллера (например, для проксирования AOP) обязательно последовательно размещайте все свои аннотации сопоставления, например @RequestMapping
и @SessionAttributes
, на интерфейсе контроллера.чем в классе реализации.
А если нет, вы должны установить proxy-target-class="true"
, как описано в разделе Механизмы прокси .