Comprendre le comportement du proxy Spring AOP
Dans Spring AOP, les aspects sont appliqués aux appels de méthode effectués via des objets proxy, et non directement aux classes d'implémentation . Lorsque vous définissez une configuration AOP pour un bean, Spring crée un proxy pour ce bean, qui intercepte et redirige les appels de méthode vers l'implémentation réelle.
Le problème :
Dans le code fourni, method2() est appelé directement dans method1() de la même classe, en contournant complètement le proxy. De ce fait, l'aspect AOP n'est pas invoqué.
Solution :
Pour résoudre ce problème, vous avez deux options :
Définissez des beans séparés pour Method1 et Method2 :
Utiliser un framework AOP externe :
Mécanisme de proxy Spring :
Spring utilise un mécanisme de proxy pour implémenter AOP. . Lorsqu'un bean est injecté dans un autre, un proxy est créé pour gérer les invocations de méthodes. Ce proxy délègue non seulement les appels au bean réel, mais les intercepte également pour une fonctionnalité AOP potentielle.
Reportez-vous à la section de la documentation Spring sur « Comprendre les proxys AOP » pour plus de détails et des solutions alternatives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!