Le concept du chargeur de classe dans Java
Le chargeur de classe
dans Java fait partie de l'environnement de l'exécution de Java et est responsable du chargement de la dynamique de la classe à la machine virtuelle Java (JVM). L'application Java utilise un chargeur de classe pour charger des fichiers de classe à la demande, plutôt que de charger toutes les classes pendant le démarrage.
Caractéristiques principales:
Chargement dynamique
: La classe est chargée à la demande lors de la référence.
- Le modèle de commission : Après le modèle de la Commission du père, les demandes de la classe de chargement sont transmises au chargeur parent avant d'essayer le chargement local.
Isolement - : Il aide à maintenir l'isolement des classes, ce qui est particulièrement utile dans des systèmes complexes tels que les serveurs d'application.
Type de chargeur de classe: -
Le chargeur de classe de guidage
:
Chargez la classe Java de base de ,
et d'autres.
- Une partie de JVM est implémentée de manière native.
- chargeur d'extension
java.lang
: java.util
Chargez la classe à partir de l'extension Java (- ).
- chargeur de classe d'application / système :
Chargez la classe à partir de l'application de l'application (- variable d'environnement).
jre/lib/ext
Chardeur de classe personnalisé - :
Le chargeur de classe défini par l'utilisateur est utilisé pour développer ou modifier le comportement de chargement par défaut. Méthode de chargeur de classe:
-
: Trouvez une classe avec un nom spécifié.
: Utilisez le modèle de commission pour charger la classe. -
: Le tableau d'octet est converti en instance de classe.
Structure hiérarchique du chargeur de classe:
- Le chargeur de classe dans Spring
findClass(String name)
Dans le Spring Framework
- , le concept du chargeur de classe est très important, car l'application Spring charge dynamiquement la classe et gère les ressources pendant l'exécution. Le mécanisme de chargeur de classe de Spring et Java s'intègre pour améliorer le chargement des classes et des ressources.
loadClass(String name)
Utilisation au printemps: -
defineClass(byte[] b)
Bean chargé et configuration
:
Spring utilise un chargeur de classe pour charger le bean défini dans le fichier de configuration ou utilise la classe d'annotation
<code>引导类加载器
↑
扩展类加载器
↑
应用程序类加载器
↑
自定义类加载器(如有)</code>
Copier après la connexion
Copier après la connexion
.
Ressources de chargement :
Spring fournit une
abstraction pour charger des fichiers, une URL ou des ressources de chemin de classe. Derrière la scène, il utilise un chargeur de classe pour analyser les ressources.
-
Exemple:
<code>引导类加载器
↑
扩展类加载器
↑
应用程序类加载器
↑
自定义类加载器(如有)</code>
Copier après la connexion
Copier après la connexion
- Chargement à chaud :
Spring Boot Devtools
- Les outils tels que les chargeurs de classe personnalisés recharger dynamiquement la classe pendant le processus de développement.
Scène de chargeur de classe personnalisée : -
Lorsque l'application Spring est déployée dans un conteneur ou un micro-service, les chargeurs de classe personnalisés sont généralement implémentés pour isoler les dépendances (par exemple, dans Tomcat ou Kubernetes).
-
Face à la programmation orientée vers l'aspect (AOP)
:
- Spring AOP utilise des classes proxy, qui sont généralement chargées dynamiquement via des chargeurs de classe.
-
Abstraction du chargeur de classe Spring:
Le chargeur de classe encapsulé de Spring pour simplifier le chargement des ressources.
Le chargeur de classe est généralement utilisé pour accéder à des threads spécifiques, permettant à Spring d'être intégré de manière transparente avec des bibliothèques de troisième partie. -
DefaultResourceLoader
Exemples communs: -
ContextClassLoader
Utilisez le chargeur de classe pour charger le bean à partir du fichier:
Java et Spring Key Différences:
Resource resource = new ClassPathResource("application.properties");
Copier après la connexion
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!