Maison >Problème commun >Quelle est la différence entre le proxy cglib et le proxy dynamique jdk ?
La différence entre le proxy cglib et le proxy dynamique jdk est que le proxy dynamique JDK crée des instances proxy de l'objet proxy basées sur les interfaces, tandis que le proxy Cglib génère des sous-classes de la classe proxy basées sur l'héritage.
Le système d'exploitation de ce tutoriel : système Windows 10, version jdk15, ordinateur Dell G3.
Le proxy dynamique JDK et le proxy Cglib sont tous deux des méthodes d'implémentation de proxy en langage Java. Il existe certaines différences entre les deux en termes d'utilisation, de performances et de scénarios applicables :
1. Créez une instance proxy de l'objet proxy en fonction de l'interface. Lorsqu'un objet doit être proxy, il doit implémenter une ou plusieurs interfaces et s'appuyer sur la bibliothèque JDK. Le proxy dynamique JDK utilise le mécanisme de réflexion pour générer une classe proxy qui contient toutes les interfaces de l'objet proxy et couvre toutes les méthodes de l'interface, qui peuvent proxy l'objet cible.
Avantages : Pas besoin de référencer des bibliothèques tierces, il peut être exécuté dans l'environnement d'exécution JRE et la génération d'objets proxy est plus simple et plus rapide. Inconvénients : Il ne prend en charge que le proxy basé sur les interfaces et ne peut pas proxy de classes, donc ; son rôle est limité.Générez des sous-classes de la classe proxy basées sur l'héritage pour ajouter une logique de proxy. Parce qu'il hérite de la classe mandatée, il sera affecté par des attributs non héritables tels que les classes finales, privées et statiques.
Avantages : Cglib prend en charge les classes proxy. Même s'il n'y a pas d'interface, cela peut être réalisé indirectement en définissant une interface de rappel. Les performances sont supérieures à celles du proxy dynamique JDK et peuvent proxy cibler des objets qui n'implémentent aucune interface.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!