Auto-Wiring Beans

Spring Auto-Wiring Beans

In Spring Framework können Sie Beans automatisch mit der Funktion zur automatischen Verkabelung verkabeln. Um es zu aktivieren, definieren Sie einfach das Attribut "autowire" in .

    

Im Frühjahr werden 5 Auto-Wiring-Modi unterstützt.

  • no - Standardeinstellung, keine automatische Verkabelung. Die Einstellung erfolgt manuell über das Attribut "ref"

  • byName - Automatische Verkabelung nach Eigenschaftsname. Wenn der Name einer Bean mit dem Namen einer anderen Bean-Eigenschaft identisch ist, verbinden Sie sie automatisch.

  • byType - Automatische Verkabelung nach Eigenschaftsdatentyp. Wenn der Datentyp einer Bean mit dem Datentyp einer anderen Bean-Eigenschaft kompatibel ist, verbinden Sie ihn automatisch.

  • Konstruktor - ByType-Modus im Konstruktorargument.

  • autodetect - Wenn ein Standardkonstruktor gefunden wird, verwenden Sie "autowired by constructor". Verwenden Sie andernfalls "autowire by type".

Beispiele

Ein Kunden- und Personenobjekt für die Demonstration der automatischen Verkabelung.

package com.example.common;

public class Customer
{
    private Person person;

    public Customer(Person person) {
        this.person = person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
    //...
}
package com.example.common;

public class Person
{
    //...
}

1. Auto-Wiring "Nein"

Dies ist der Standardmodus. Sie müssen Ihre Bean über das Attribut "ref" verbinden.

    
                  
    

    

2. Auto-Wiring "byName"

Automatische Verknüpfung einer Bean mit dem Eigenschaftsnamen. In diesem Fall wird Spring die automatische Verkabelung über die Setter-Methode "setPerson(Person person)" durchführen, da der Name der "Person" -Bohne mit dem Namen der "Kunden" -Bohne ("Person") identisch ist.

    

    

Siehe vollständiges Beispiel -Spring Autowiring by Name.

3. Auto-Wiring "byType"

Automatische Verknüpfung einer Bean nach Eigenschaftsdatentyp. Da in diesem Fall der Datentyp der Bean "Person" mit dem Datentyp der Bean der "Bean" des Kunden (Objekt "Person" identisch ist, wird er von Spring automatisch über die Setter-Methode "setPerson(Person person)" verkabelt.

    

    

Siehe vollständiges Beispiel -Spring Autowiring by Type.

4. Auto-Wiring-Konstruktor

Verknüpfen Sie eine Bean automatisch nach dem Datentyp der Eigenschaft im Konstruktorargument. Da in diesem Fall der Datentyp der Bean "person" mit dem Datentyp des Konstruktorarguments in der Eigenschaft der Bean "customer" (Person object) identisch ist, hat Spring ihn automatisch über die Konstruktormethode "public Customer(Person person)" verdrahtet.

    

    

Siehe vollständiges Beispiel -Spring Autowiring by Constructor.

5. Auto-Wiring "Autodetect"

Wird ein Standardkonstruktor gefunden, wird "Konstruktor" verwendet. Andernfalls wird "byType" verwendet. In diesem Fall hat Spring, da es einen Standardkonstruktor in der Klasse "Kunde" gibt, diesen automatisch über die Konstruktormethode "public Customer(Person person)" verdrahtet.

    

    

Siehe vollständiges Beispiel -Spring Autowiring by AutoDetect.

Note
Es ist immer gut, sowohl "Auto-Wire" als auch "Dependency-Check" miteinander zu kombinieren, um sicherzustellen, dass die Eigenschaft immer erfolgreich automatisch verkabelt wird.

    

Fazit

Meiner Ansicht nach beschleunigt die automatische Verkabelung von Spring die Entwicklung bei hohen Kosten. Sie hat die Komplexität der gesamten Bean-Konfigurationsdatei erhöht, und Sie wissen nicht einmal, welches Bean in welchem ​​Bean automatisch verkabelt wird.

In der Praxis verdrahte ich es lieber manuell, es ist immer sauber und funktioniert einwandfrei oder verwendet besser@Autowired annotation, was flexibler und empfohlen ist.