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
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.