illustrer
1. L'agent Cglib peut être appelé un agent de sous-classe, qui construit des objets de sous-classe en mémoire pour étendre les fonctionnalités de l'objet cible.
Les proxys statiques et les proxys JDK nécessitent un objet pour implémenter une interface. Parfois, l'objet proxy n'est qu'un seul objet et le proxy Cglib peut être utilisé à ce stade.
2. Cglib génère une classe proxy via Enhancer et implémente la méthode d'interception en implémentant l'interface MethodInterceptor.
Des méthodes d’amélioration peuvent être ajoutées à la méthode et la méthode d’origine peut être appelée à l’aide d’une classe héritée de méthode réfléchissante ou de MethodProxy.
Exemple
la classe publique TVProxyCglib implémente MethodInterceptor { //Créer un objet proxy pour l'objet cible public Object getProxyInstance(Class c){ //1. Classe d'outils Enhancer Enhancer = new Enhancer(); //2.Définissez la classe parent Enhancer.setSuperclass(c); //3.Définissez la fonction de rappel Enhancer.setCallback(this); //4. Créez une sous-classe (objet proxy) return Enhancer.create(); } @Outrepasser public Object intercept (Object o, méthode Method, Object [] objets, MethodProxy methodProxy) lance Throwable { System.out.println("Amélioration TVProxyFactory...."); Objet objet = methodProxy.invokeSuper(o, objets); renvoyer l'objet ; } }
Ce qui précède concerne l'utilisation de l'agent Cglib en Java, j'espère que cela sera utile à tout le monde.
Plus de guide d'apprentissage Java : tutoriel java
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Java 10, ordinateur DELL G3.