L'injection d'ensemble et l'injection de constructeur sont parfois gênantes lors de la configuration. Par conséquent, afin d'améliorer l'efficacité du développement, le framework fournit des fonctions d'assemblage automatique et simplifie la configuration. Le framework Spring ne prend pas en charge l'assemblage automatique par défaut. Si vous souhaitez utiliser l'assemblage automatique, vous devez modifier l'attribut autowire de la balise
L'attribut d'assemblage automatique a 6 valeurs facultatives, chacun représentant des significations différentes.
1, byName
Lors de l'obtention de l'objet cible à partir de l'environnement Spring, les attributs de l'objet cible rechercheront dans l'ensemble de l'environnement Spring la valeur de l'attribut id de la balise
L'ensemble de l'environnement Spring : signifie rechercher dans tous les fichiers de configuration Spring, l'ID ne peut alors pas être répété.
2, byType
Lors de l'obtention de l'objet cible à partir de l'environnement Spring, les attributs de l'objet cible rechercheront la valeur de l'attribut de classe de la balise
Inconvénient : S'il existe plusieurs objets bean du même type, une erreur se produira.
Si l'attribut est un seul type de données, une erreur se produira si plusieurs objets associés sont trouvés.
Si l'attribut est de type tableau ou collection (générique), aucune exception ne se produira si plusieurs objets associés sont trouvés.
3. Constructor
utilise la méthode constructeur pour terminer l'injection d'objets. En fait, il effectue également une recherche d'objets en fonction du type de paramètre de la méthode constructeur, ce qui équivaut à l'utilisation de byType.
4, détection automatique
Sélection automatique : si l'objet n'a pas de méthode de construction sans paramètre, alors la méthode d'assemblage automatique du constructeur est automatiquement sélectionnée pour l'injection de construction. Si l'objet contient un constructeur sans paramètre, la méthode d'assemblage automatique byType est automatiquement sélectionnée pour l'injection setter.
5, non
ne prend pas en charge la fonction d'assemblage automatique
6, par défaut
signifie que la valeur de l'assemblage automatique de la balise de niveau supérieur est utilisée par défaut. S'il existe plusieurs fichiers de configuration, la méthode d'assemblage automatique de chaque fichier de configuration est indépendante.
S'il existe plusieurs fichiers de configuration, la façon de charger le fichier de configuration est la suivante :
1) Vous pouvez spécifier le fichier de configuration global pour inclure les fichiers de sous-configuration, puis charger uniquement le fichier de configuration global . Utilisez la balise d'importation dans le fichier de configuration global applicationContext.xml pour charger le fichier de configuration dans le package de sous-fichiers
code :
ApplicationContextac= newClassPathXmlApplicationContext("applicationContext.xml");
2) Utilisez des astérisques pour faire correspondre plusieurs fichiers à charger, et les noms de fichiers doivent être conformes aux règles. (Recommandé)
3) Vous pouvez utiliser des tableaux comme paramètres pour charger plusieurs fichiers de configuration à la fois
//配置文件的名称 applicationContext.xml applicationContext-action.xml applicationContext-service.xml applicationContext-dao.xml ApplicationContextac =newClassPathXmlApplicationContext("applicationContext*.xml");
String[]files={"applicationContext.xml","applicationContext-test.xml"}; ApplicationContextac = newClassPathXmlApplicationContext(files);
Remarque : si la fonction d'assemblage automatique et l'assemblage manuel sont utilisés en même temps, l'assemblage automatique ne fonctionnera pas.