Câblage automatique du ressort par type
Dans Spring, «Autowiring by Type» signifie que si le type de données d'un bean est compatible avec le type de données d'une autre propriété de bean, le câble automatiquement.
Par exemple, un bean «personne» expose une propriété avec un type de données de classe «capacité», Spring trouvera le bean avec le même type de données de classe «capacité» et le câblera automatiquement. Et si aucune correspondance n'est trouvée, ne faites rien.
Vous pouvez activer cette fonctionnalité viaautowire="byType"
comme ci-dessous:
Voir un exemple complet de câblage automatique Spring par type.
1. Des haricots
Deux haricots, personne et capacité.
package com.example.common; public class Person { private Ability ability; //... }
package com.example.common; public class Ability { private String skill; //... }
2. Câblage de printemps
Normalement, vous câblez explicitement le bean:
Sortie
Person [ability=Ability [skill=Invisible]]
Avecautowire by type enabled, vous pouvez laisser la propriété de capacité non définie. Spring trouvera le même type de données et le câblera automatiquement.
Sortie
Person [ability=Ability [skill=Invisible]]
Attendez, et si vous avez deux beans avec le même type de données de «capacité» de classe?
Sortie
Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: ... No unique bean of type [com.example.common.Ability] is defined: expected single matching bean but found 2: [steal, invisible]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.example.common.Ability] is defined: expected single matching bean but found 2: [steal, invisible]
Dans ce cas, vous obtiendrez le message d'erreurUnsatisfiedDependencyException
.
Note
En mode autowiring par type, il suffit de s'assurer qu'un seul type de données de bean est déclaré.
Télécharger le code source
Téléchargez-le -Spring-AutoWiring-by-Type-Example.zip (6 Ko)