Vérification de la dépendance des propriétés Spring
Au printemps, vous pouvez utiliser la fonction de vérification des dépendances pour vous assurer que les propriétés requises ont été définies ou injectées.
Modes de vérification des dépendances
4 modes de vérification des dépendances sont pris en charge:
-
none - Pas de vérification des dépendances.
-
simple - Si des propriétés de type primitif (int, long, double…) et de types de collection (map, list ..) n'ont pas été définies, UnsatisfiedDependencyException sera levée.
-
objets - Si aucune propriété de type d'objet n'a été définie, UnsatisfiedDependencyException sera levée.
-
all - Si aucune propriété de n'importe quel type n'a été définie, une UnsatisfiedDependencyException
sera lancée.
P.S The default mode is none
Exemple
Un objet Client et Personne pour la démonstration.
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. aucune vérification des dépendances
Fichier de configuration Spring Bean avec mode de vérification des dépendances «aucun».
Si vous n’avez pas défini explicitement le mode de vérification des dépendances, il s’agit par défaut de «aucun». Aucune vérification des dépendances ne sera effectuée.
2. vérification simple des dépendances
Fichier de configuration Spring Bean avec mode de vérification des dépendances «simple».
La propriété ‘type’ (type primitif ou types de collection) n’a pas été définie, unUnsatisfiedDependencyException lancera.
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. vérification de la dépendance des objets
Fichier de configuration Spring Bean avec mode de vérification de la dépendance des «objets».
La propriété ‘personne’ (type d’objets) n’a pas été définie, unUnsatisfiedDependencyException lancera.
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. vérification de toutes les dépendances
Fichier de configuration Spring Bean avec le mode de vérification des dépendances «tous».
La combinaison du mode «simple» et «objets», si aucune propriété de n'importe quel type (primitive, collection et objet) n'a été définie, unUnsatisfiedDependencyException sera lancé.
Vérification globale des dépendances par défaut
Définir explicitement le mode de vérification des dépendances pour chaque beans est fastidieux et sujet aux erreurs, vous pouvez définir un attribut default-dependency-check dans l'élément racine
Tous les beans déclarés dans ce fichier de configuration sont par défaut en mode de vérification de dépendance ‘all’.
@Required Annotation
Dans la plupart des scénarios, vous devez simplement vous assurer qu'une propriété particulière a été définie, mais pas toutes les propriétés d'un certain type (primitive, collection ou objet). L'annotation @Required peut appliquer cette vérification,see detail.