Manchmal ist es notwendig, die Reihenfolge der Methoden-Interzeptoren zu kennen, die einen Methodenaufruf in Guice abfangen. Ein einfaches Beispielszenario wäre die Verwendung des Interacceptors @Transactional für guice-persist mit einem benutzerdefinierten Interceptor @Retry. Der Wiederholungsabfanger muss außerhalb des Transaktionsabfangregisters ausgeführt werden, um sicherzustellen, dass die Wiederholungsversuche nicht innerhalb derselben Transaktion ausgeführt werden.
Im Frühjahr könnten Sie die Ordered-Schnittstelle für den Interceptor verwenden, um sicherzustellen, dass der Transaktionsinterceptor innerhalb des Wiederholungsinterceptors ausgeführt wird. Gibt es einen Weg, das gleiche in Guice zu erreichen?
Guice ruft die Interzeptoren in der Reihenfolge auf, in der sie registriert wurden. Also wenn du sie so definierst:
%Vor%oder
%Vor% Der retryInterceptor
wird vor dem transactionalInterceptor
ausgeführt.
Gleiches gilt, wenn Sie mehrere Module haben - die Interzeptoren vom ersten Modul werden vor den Interzeptoren des Sekundenmoduls ausgeführt und so weiter.
Tags und Links methods guice interceptor aop