Vérification de la dépendance des propriétés du printemps

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 pour forcer les beans entiers déclarés dans l'élément racine à appliquer cette règle. Cependant, ce mode par défaut racine sera remplacé par le propre mode d'un bean s'il est spécifié.



    
        
        
    

    
        
        
        
    

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.