2016-06-20 2 views
1

Je travaille sur la création de proxy dynamique sur des classes concrètes. Puisque la classe de proxy simple de java aide seulement avec les interfaces, j'ai choisi CGLIb.
J'utilise la classe Enhancer avec MethodInterceptor pour intercepter les méthodes de mon proxy et je suis capable d'intercepter tous les appels de méthode, mais les méthodes statiques.

Est-il possible d'intercepter des appels à des méthodes statiques en utilisant CGLIb?Intercepter les méthodes statiques avec cglib

Répondre

1

Ceci n'est pas possible, classes d'instruments cglib en créant une sous-classe où toutes les méthodes sont remplacées pour appliquer la logique d'interception. Cela n'est pas possible pour les méthodes statiques telles que cglib ne le supporte pas.

+0

Merci beaucoup! Existe-t-il un autre moyen d'effectuer une instrumentation statique sans modifier la bibliothèque de méthodes? Ma compréhension est que, grâce à Java aider, nous pouvons réécrire la méthode avec une nouvelle définition. Mais je ne veux pas utiliser javaassist. –

+0

Vous pouvez jeter un oeil à Javassist et Byte Buddy. Les deux permettent la redéfinition de classe pour le faire. –