ou utilisez des valeurs d'énumération pour définir
scénarios d'utilisation à cas unique et multi-instances
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 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. Chargement paresseux spring utilise le préchargement par défaut et crée des beans au démarrage du projet SpringChargement paresseux : ne créez pas de beans au démarrage du projet Spring, créez-les lors de l'utilisation de
Trois méthodes d'injection
Injection sur le terrain (IDEA vous indiquera que ce n'est pas recommandé)
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 non plus être injectésProblè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é.
Injection de constructeur (recommandation officielle) L'injection de constructeur est une injection via le constructeur de la classeL'injection de constructeur peut résoudre :
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
Impossible de résoudre : problème de dépendance circulaireLe 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
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
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!