Récipient Spring BeanFactory

Il s'agit du conteneur le plus simple fournissant le support de base pour DI et défini par l'interface org.springframework.beans.factory.BeanFactory. Le BeanFactory et les interfaces associées, telles que BeanFactoryAware, InitializingBean, DisposableBean, sont toujours présents dans Spring à des fins de compatibilité descendante avec un grand nombre de frameworks tiers qui s'intègrent à Spring.

Il existe un certain nombre d'implémentations de l'interface BeanFactory qui sont directement sorties de la boîte avec Spring. L'implémentation BeanFactory la plus couramment utilisée est laXmlBeanFactoryclasse. Ce conteneur lit les métadonnées de configuration à partir d'un fichier XML et les utilise pour créer un système ou une application entièrement configuré.

La BeanFactory est généralement préférée là où les ressources sont limitées comme les appareils mobiles ou les applications basées sur des applets. Par conséquent, utilisez un ApplicationContext sauf si vous avez une bonne raison de ne pas le faire.

Exemple

Jetons un coup d'œil à un IDE Eclipse fonctionnel en place et suivons les étapes suivantes pour créer une application Spring -

Pas La description
1 Créez un projet avec un nom SpringExample et créez un packagecom.tutorialspoint sous lesrc dossier dans le projet créé.
2 Ajoutez les bibliothèques Spring requises à l'aide de l'option Ajouter des JAR externes, comme expliqué dans le chapitre Exemple de Spring Hello World.
3 Créez les classes Java HelloWorld et MainApp sous le package com.tutorialspointpackage .
4 Créez le fichier de configuration Beans Beans.xml sous lesrc dossier.
5 La dernière étape consiste à créer le contenu de tous les fichiers Java et du fichier de configuration Bean. Enfin, exécutez l'application comme expliqué ci-dessous.

Voici le contenu de HelloWorld.java fichier -

package com.tutorialspoint;  

public class HelloWorld { 
   private String message;  
   
   public void setMessage(String message){ 
      this.message  = message; 
   }  
   public void getMessage(){ 
      System.out.println("Your Message : " + message); 
   } 
}

Voici le contenu du deuxième fichier MainApp.java

package com.tutorialspoint;  

import org.springframework.beans.factory.InitializingBean; 
import org.springframework.beans.factory.xml.XmlBeanFactory; 
import org.springframework.core.io.ClassPathResource;  

public class MainApp { 
   public static void main(String[] args) { 
      XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("Beans.xml")); 
      HelloWorld obj = (HelloWorld) factory.getBean("helloWorld");    
      obj.getMessage();    
   }
}

Après deux points importants à noter concernant le programme principal -

  • La première étape est de créer un objet de fabrique où nous avons utilisé le framework APIXmlBeanFactory () pour créer le bean factory et l'APIClassPathResource () pour charger le fichier de configuration du bean disponible dans CLASSPATH. L'API XmlBeanFactory () se charge de créer et d'initialiser tous les objets, c'est-à-dire les beans mentionnés dans le fichier de configuration.

  • La deuxième étape est utilisée pour obtenir le bean requis à l'aide de la méthode getBean () de l'objet de fabrique de bean créé. Cette méthode utilise l'ID de bean pour renvoyer un objet générique, qui peut finalement être transtypé en objet réel. Une fois que vous avez l'objet, vous pouvez utiliser cet objet pour appeler n'importe quelle méthode de classe.

Voici le contenu du fichier de configuration du bean Beans.xml

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld">
      <property name = "message" value = "Hello World!"/>
   </bean>

</beans>

Une fois que vous avez terminé de créer la source et les fichiers de configuration du bean, exécutons l'application. Si tout va bien avec votre application, elle imprimera le message suivant -

Your Message : Hello World!