2009-10-31 12 views
3

Je veux savoir si nous pouvons appliquer des comportements «multiples» AOP à nos classes de service ou non?Spring - Comment les comportements AOP «multiples» aux services sont-ils résolus?

permet simplement de dire, je le fais à ma BankServiceImpl classe:

  • @Transactional au-dessus de l'une des méthodes, accountTransfer() et
  • et une coutume <aop> pointcut sur l'exécution d'une autre méthode someOtherMethod().

Ensuite jaillira pouvoir générer un proxyaccountTransfer() est fait transactionnel et someOtherMethod() est également donné le comportement aop?

Quelqu'un a-t-il une idée sur la façon dont Spring résout plusieurs comportements AOP?

Répondre

3

Il semble que Spring crée un seul objet proxy avec tous les types de conseils. Cet objet proxy implémentera le org.springframework.aop.framework.Advised, qu'il s'agisse d'un proxy dynamique JDK ou d'un proxy CGLIB.

Si vous avez plusieurs conseillers, l'ordre de leur exécution est indéfini, à moins que vous ne l'expliquiez en implémentant l'interface Ordered ou l'annotation @Ordered. Vous pouvez trouver plus sur la commande here. Aspects transactionnels de Springs par défaut à la plus basse priorité.

+0

Merci Jason .. cela a beaucoup aidé! – peakit