Весна - Как разрешается «множественное» поведение АОП для сервисов? - PullRequest
3 голосов
/ 31 октября 2009

Я хочу знать, можем ли мы применять «множественное» AOP поведение к нашим классам обслуживания или нет?

Давайте просто скажем, я делаю это для моего BankServiceImpl класса:

  • @Transactional поверх одного из методов, accountTransfer() и
  • и некоторые пользовательские <aop> pointcut для выполнения другого метода someOtherMethod().

Тогда Spring сможет сгенерировать один прокси, где accountTransfer() сделан транзакционным, а someOtherMethod() также имеет поведение aop?

Есть ли у кого-нибудь представление о том, как Spring разрешает множественные AOP поведения?

1 Ответ

3 голосов
/ 01 ноября 2009

Похоже, что Spring создает один прокси-объект со всеми типами подсказок. Этот прокси-объект будет реализовывать org.springframework.aop.framework.Advised независимо от того, является ли он динамическим прокси-сервером JDK или прокси-сервером CGLIB.

Если у вас несколько советников, порядок их выполнения не определен, если вы не сделаете это эксплицитным путем реализации интерфейса Ordered или аннотации @Ordered. Вы можете найти больше информации о заказе здесь . Транзакционные аспекты Springs по умолчанию имеют самый низкий приоритет.

...