Überprüfung der Federeigenschaften

Abhängigkeitsprüfung der Federeigenschaften

In Spring können Sie mithilfe der Abhängigkeitsüberprüfungsfunktion sicherstellen, dass die erforderlichen Eigenschaften festgelegt oder eingefügt wurden.

Abhängigkeitsprüfungsmodi

Es werden 4 Abhängigkeitsprüfungsmodi unterstützt:

  • none - Keine Abhängigkeitsprüfung.

  • simple - Wenn keine Eigenschaften des primitiven Typs (int, long, double…) und des Auflistungstyps (map, list ..) festgelegt wurden, wird UnsatisfiedDependencyException ausgelöst.

  • objects - Wenn keine Eigenschaften des Objekttyps festgelegt wurden, wird UnsatisfiedDependencyException ausgelöst.

  • all - Wenn keine Eigenschaften eines Typs festgelegt wurden, wird eine UnsatisfiedDependencyException
    ausgelöst.

P.S The default mode is none

Beispiel

Ein Kunden- und Personenobjekt für die Demonstration.

package com.example.common;

public class Customer
{
    private Person person;
    private int type;
    private String action;

    //getter and setter methods
}
package com.example.common;

public class Person
{
    private String name;
    private String address;
    private int age;

    //getter and setter methods
}

1. keine Abhängigkeitsprüfung

Spring Bean-Konfigurationsdatei mit Abhängigkeitsüberprüfungsmodus "Keine".



    
        
    

    
        
        
        
    

Wenn Sie den Abhängigkeitsüberprüfungsmodus nicht explizit definiert haben, lautet der Standardwert "none". Es wird keine Abhängigkeitsprüfung durchgeführt.

2. einfache Abhängigkeitsprüfung

Spring Bean-Konfigurationsdatei mit einfachem Abhängigkeitsüberprüfungsmodus



    

        
        
    

    
        
        
        
    

Die Eigenschaft 'type' (primitiver Typ oder Auflistungstyp) wurde nicht festgelegt. EinUnsatisfiedDependencyException wird ausgelöst.

org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'CustomerBean'
defined in class path resource [config/Spring-Customer.xml]:
Unsatisfied dependency expressed through bean property 'type':
Set this property value or disable dependency checking for this bean.

3. Objektabhängigkeitsprüfung

Spring Bean-Konfigurationsdatei mit Abhängigkeitsüberprüfungsmodus "Objekte".



    

        
        
    

    
        
        
        
    

Die Eigenschaft "Person" (Objekttyp) wurde nicht festgelegt. EinUnsatisfiedDependencyExceptionwird ausgelöst.

org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'CustomerBean'
defined in class path resource [config/Spring-Customer.xml]:
Unsatisfied dependency expressed through bean property 'person':
Set this property value or disable dependency checking for this bean.

4. alle Abhängigkeitsprüfung

Spring Bean-Konfigurationsdatei mit Abhängigkeitsüberprüfungsmodus "Alle".



    

        
    

    
        
        
        
    

In der Kombination aus "einfach" und "Objekte" wird einUnsatisfiedDependencyExceptionausgelöst, wenn keine Eigenschaften eines beliebigen Typs (Grundelement, Sammlung und Objekt) festgelegt wurden.

Globale Standardabhängigkeitsprüfung

Das explizite Definieren des Abhängigkeitsüberprüfungsmodus für jedes Bean ist mühsam und fehleranfällig. Sie können ein Standard-Abhängigkeitsüberprüfungsattribut im -Root-Element festlegen, um die Anwendung dieser Regel auf alle innerhalb des -Root-Elements deklarierten Beans zu erzwingen. Dieser Root-Standardmodus wird jedoch durch den eigenen Modus eines Beans überschrieben, wenn er angegeben wird.



    
        
        
    

    
        
        
        
    

Alle in dieser Konfigurationsdatei deklarierten Beans sind standardmäßig auf den Abhängigkeitsüberprüfungsmodus "Alle" eingestellt.

@Required Annotation
In den meisten Szenarien müssen Sie nur sicherstellen, dass eine bestimmte Eigenschaft festgelegt wurde, jedoch nicht alle Eigenschaften eines bestimmten Typs (Grundelement, Sammlung oder Objekt). Die @ Erforderliche Anmerkung kann diese Überprüfung erzwingen,see detail.