Maison  >  Article  >  Java  >  La différence entre le proxy dynamique JDK et CGLIB

La différence entre le proxy dynamique JDK et CGLIB

angryTom
angryTomoriginal
2020-02-17 16:34:344183parcourir

La différence entre le proxy dynamique JDK et CGLIB

La différence entre le proxy dynamique JDK et CGLIB

1. Utilisation de l'interception L'intercepteur (l'intercepteur doit implémenter InvocationHanlder) plus le mécanisme de réflexion génère une classe anonyme qui implémente l'interface proxy

Appelle InvokeHandler avant d'appeler la méthode spécifique.

(Partage de didacticiels vidéo associés :

tutoriel vidéo Java

)

2. Proxy dynamique CGLiB :

Utilisation de l'open source ASM. package , chargez le fichier de classe de la classe d'objet proxy et traitez-le en modifiant son bytecode pour générer une sous-classe.

3. Quelle est la différence entre le proxy dynamique JDK et la génération de bytecode CGLIB ?

1. Le proxy dynamique JDK ne peut générer des proxys que pour les classes qui implémentent des interfaces, mais pas pour les classes.

2. CGLIB implémente des proxys pour les classes. Il génère principalement une sous-classe pour la classe spécifiée, remplace les méthodes qu'elle contient et remplace les méthodes pour obtenir une amélioration. Cependant, parce que l'héritage est utilisé, la classe ou la méthode l'utilise. Il est préférable de ne pas le déclarer final. Les classes ou méthodes finales ne peuvent pas être héritées.

Pour plus de tutoriels liés à Java, veuillez visiter le site Web PHP chinois, colonne

Tutoriel Java

 !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn