Automatische Autowiring-Funktion nach Typ

Federdraht nach Typ

Im Frühjahr bedeutet "Autowiring by Type", wenn der Datentyp einer Bean mit dem Datentyp einer anderen Bean-Eigenschaft kompatibel ist, diese automatisch zu verkabeln.

Beispiel: Eine Bean "Person" macht eine Eigenschaft mit dem Datentyp "Fähigkeit" verfügbar. Spring findet die Bean mit dem gleichen Datentyp der Klasse "Fähigkeit" und verknüpft sie automatisch. Und wenn keine Übereinstimmung gefunden wird, nichts tun.

Sie können diese Funktion überautowire="byType"wie folgt aktivieren:

    
    

    
        
    

Ein vollständiges Beispiel für die automatische Federverdrahtung nach Typ anzeigen.

1. Bohnen

Zwei Bohnen, Person und Können.

package com.example.common;

public class Person
{
    private Ability ability;
    //...
}
package com.example.common;

public class Ability
{
    private String skill;
    //...
}

2. Federverdrahtung

Normalerweise verdrahten Sie die Bohne explizit:

    
        
    

    
        
    

Ausgabe

Person [ability=Ability [skill=Invisible]]

Mitautowire by type enabled können Sie die Fähigkeitseigenschaft nicht festlegen. Spring findet den gleichen Datentyp und verdrahtet ihn automatisch.

    

    
        
    

Ausgabe

Person [ability=Ability [skill=Invisible]]

Warten Sie, was ist, wenn Sie zwei Beans mit demselben Datentyp der Klasse "Fähigkeit" haben?

    

    
        
    

    
        
    

Ausgabe

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]

In diesem Fall wird die FehlermeldungUnsatisfiedDependencyExceptionangezeigt.

Note
Beim automatischen Verdrahten nach Typmodus müssen Sie nur sicherstellen, dass nur ein eindeutiger Datentyp der Bean deklariert ist.

Quellcode herunterladen

Laden Sie es herunter -Spring-AutoWiring-by-Type-Example.zip (6 KB)