Héritage de la configuration du bean Spring

Héritage de configuration de Spring Bean

Dans Spring, l'héritage est pris en charge dans la configuration du bean pour qu'un bean partage des valeurs, des propriétés ou des configurations communes.

Un bean enfant ou un bean hérité peut hériter de ses configurations de bean parent, de ses propriétés et de certains attributs. De plus, les beans enfants sont autorisés à remplacer la valeur héritée.

Voir l'exemple complet suivant pour vous montrer comment l'héritage de configuration de bean fonctionne dans Spring.

package com.example.common;

public class Customer {

    private int type;
    private String action;
    private String Country;

    //...

}

Fichier de configuration du bean



    
        
    

    
        
        
    

Ci-dessus, un bean «BaseCustomerMalaysia» contient une valeur «Malaysia» pour la propriété du pays, et le bean «CustomerBean» a hérité cette valeur de son parent («BaseCustomerMalaysia»).

Exécuter

package com.example.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App
{
    public static void main( String[] args )
    {
        ApplicationContext context =
            new ClassPathXmlApplicationContext("SpringBeans.xml");

        Customer cust = (Customer)context.getBean("CustomerBean");
        System.out.println(cust);

    }
}

sortie

Customer [type=1, action=buy, Country=Malaysia]

Le bean «CustomerBean» vient d’hériter de la propriété country de son parent («BaseCustomerMalaysia»).

Héritage avec résumé

Dans l'exemple ci-dessus, la «BaseCustomerMalaysia» est toujours en mesure d'instancier, par exemple,

    Customer cust = (Customer)context.getBean("BaseCustomerMalaysia");

Si vous voulez faire de ce bean de base un modèle et ne pas autoriser d'autres personnes à l'instancier, vous pouvez ajouter un attribut «abstract» dans l'élément . Par exemple



    
        
    

    
        
        
    

Maintenant, le bean ‘BaseCustomerMalaysia’ est un pur modèle, pour que le bean en hérite uniquement, si vous essayez de l'instancier, vous rencontrerez le message d'erreur suivant.

    Customer cust = (Customer)context.getBean("BaseCustomerMalaysia");
org.springframework.beans.factory.BeanIsAbstractException:
    Error creating bean with name 'BaseCustomerMalaysia':
    Bean definition is abstract

Modèle d'héritage pur

En fait, le bean parent n'est pas nécessaire pour définir l'attribut de classe, il arrive souvent que vous ayez juste besoin d'une propriété commune pour le partage. Voici un exemple



    
        
    

    

        
        
    

Dans ce cas, le bean «BaseCustomerMalaysia» est un pur modèle, pour partager sa propriété «country» uniquement.

Le remplacer

Cependant, vous êtes toujours autorisé à remplacer la valeur héritée en spécifiant la nouvelle valeur dans le bean enfant. Voyons cet exemple



    
        
    

    
        
        
        
    

Le bean «CustomerBean» remplace simplement la propriété du pays parent («BaseCustomerMalaysia»), de «Malaysia» à «Japan».

Customer [Country=Japan, action=buy, type=1]

Conclusion

L'héritage de la configuration du bean Spring est très utile pour éviter la valeur ou les configurations communes répétées pour plusieurs beans.

Télécharger le code source

Télécharger -Spring-Bean-Inheritance-Example.zip (5 Ko)