Maison  >  Article  >  Java  >  Quelles sont les méthodes d'injection de Java Spring ?

Quelles sont les méthodes d'injection de Java Spring ?

WBOY
WBOYavant
2023-05-03 12:04:161162parcourir

Définissez la portée de Spring

Java spring的注入方式有哪些


ou utilisez des valeurs d'énumération pour définir

Java spring的注入方式有哪些

scénarios d'utilisation à cas unique et multi-instances

Java spring的注入方式有哪些

injecter automatiquement

Java spring的注入方式有哪些

@Primary

une interface Comment many L'implémentation est-elle gérée par Spring ?Dans l'injection de dépendances, Spring lancera NoUniqueBeanDefinitionException sans savoir quelle classe d'implémentation injecter. Utilisez @Primary pour indiquer à Spring quelle classe d'implémentation injecter
@ComponentScan L'impact des différentes configurations sur les performances

L'impact. d'optimiser la configuration du bean sur les performances des applications SpringJava spring的注入方式有哪些

Dans Spring, nous pouvons simplifier le processus d'injection JavaBean en définissant la plage d'analyse des composants

Lorsqu'une injection d'objets à grande échelle est requise Dans le scénario, utilisez l'annotation @ComponentScan pour spécifier les points d'analyse du package. Bien entendu, les classes dans le chemin du package spécifié doivent être ajoutées avec l'annotation @Component pour permettre à Spring de les créer et de les gérer.

Java spring的注入方式有哪些

Java spring的注入方式有哪些

Chargement paresseux

spring utilise le préchargement par défaut et crée des beans au démarrage du projet Spring

Chargement paresseux : ne créez pas de beans au démarrage du projet Spring, créez-les lors de l'utilisation de Java spring的注入方式有哪些

Java spring的注入方式有哪些

Trois méthodes d'injectionJava spring的注入方式有哪些



Java spring的注入方式有哪些

Java spring的注入方式有哪些Injection sur le terrain (IDEA vous indiquera que ce n'est pas recommandé)

Inconvénients de l'injection sur le terrain

Java spring的注入方式有哪些

La classe du bean injecté sur le terrain n'est pas visible en dehors de la classe du bean

Java spring的注入方式有哪些

Problème de dépendance circulaireJava spring的注入方式有哪些

Les objets qui doivent être injectés ne peuvent pas être définis comme finaux, et ces objets immuables ne peuvent pas non plus être injectés

  • La classe du bean injecté par le champ n'est pas visible en dehors de la classe du bean

  • Le plus gros problème avec l'utilisation de l'injection de champ est la visibilité externe de la classe injectée (HealthRecorSercice), et HealthRecorSercice n'est accessible que dans la classe ClientService et n'est pas accessible en dehors de l'environnement du conteneur, ce qui entraîne un couplage trop élevé entre la classe et le conteneur. Utiliser l'objet cible en dehors du conteneur.
Dans la classe externe new, un ClientService appelle une méthode qui contient un bean injecté sur le terrain, et une exception de pointeur nul de classe HealthRecorSercice sera levée

Java spring的注入方式有哪些Problème de dépendance circulaire

Comme indiqué ci-dessous, A et B ont des dépendances cycliques, mais. leur compilation est légale au Spring. Aucune exception ne sera levée lors du démarrage de la classe String. Une erreur ne sera signalée que lorsque A ou B est utilisé. L'objet injecté par le champ est instancié avant l'instanciation des autres classes qui doivent l'être. injecté. Java spring的注入方式有哪些

Injection de constructeur (recommandation officielle)

L'injection de constructeur est une injection via le constructeur de la classe

L'injection de constructeur peut résoudre : Java spring的注入方式有哪些


Invisible en dehors de la classe

Impossible de définir l'objet qui doit être injecté comme final , également Impossible d'injecter ces objets immuables

Java spring的注入方式有哪些

Impossible de résoudre : problème de dépendance circulaire

Le code n'est pas très lisible

Des dépendances circulaires se sont-elles produites à l'aide de l'injection de constructeur ? Une exception de dépendance circulaire sera levée au démarrage du projet Spring

Java spring的注入方式有哪些

set injection méthode

set injection peut résoudre :

  • La classe n'est pas visible en dehors du

  • Problème de dépendance circulaire

  • Les objets qui doivent être injectés ne peuvent pas être définis comme finaux, et ces objets immuables ne peuvent pas être injectés

Java spring的注入方式有哪些

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer