Principe de l'Injection par Fichier XML dans Spring
Spring Framework permet de gérer l'instanciation des objets à travers un fichier de configuration XML. Cette méthode centralise la définition des beans, offrant une séparation claire entre le code applicatif et la configuration des composants. Les objets ainsi définis sont créés lors du chargement du contexet Spring, permettant une instanciation anticipée et une récupération aisée à l'exécution.
Mise en Œuvre Pratique
Étape 1 : Définition d'une Classe Java
Créez une classe simple avec des propriétés et des acecsseurs, incluant un constructeur par défaut pour permettre l'initialisation par Spring.
package com.exemple.spring;
public class Message {
private String contenu;
public String getContenu() {
return contenu;
}
public void setContenu(String contenu) {
this.contenu = contenu;
}
public Message() {
System.out.println("Constructeur sans arguments invoqué");
}
@Override
public String toString() {
return "Message{" +
"contenu='" + contenu + '\'' +
'}';
}
}
Étape 2 : Configuration XML du Bean
Dans le dossier des ressources, établissez un fichier applicationContext.xml pour déclarer le bean et ses propriétés.
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="messageBean" class="com.exemple.spring.Message">
<property name="contenu" value="Bonjour Spring"/>
</bean>
</beans>
Étape 3 : Test d'Instanciation via le Conteneur
Écrivez une classe de test pour charger le contexte et récupérer l'objet configuré.
package com.exemple.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class VerificationMessage {
public static void main(String[] args) {
ApplicationContext contexte = new ClassPathXmlApplicationContext("applicationContext.xml");
Message msg = (Message) contexte.getBean("messageBean");
System.out.println(msg);
}
}
Analyse du Comportement à l'Exécution
Lors de l'exécution, le message "Constructeur sans arguments invoqué" s'affiche avant la récupération du bean, confirmant que l'objet est instancié au chargement du fichier XML. Cette instanciation anticipée garantit que les beans sont prêts à être utilisés, réduisant les délais lors de l'accès ultérieur.
Syntaxe XML pour les Beans Spring
La structure de base d'un fichier XML Spring inclut l'élément racine <beans> avec les espaces de noms appropriés. Chaque bean est défini via une balise <bean> avec les attributs id (nom unique) et class (classe fully qualified). Les propriétés sont enjectées avec <property>, où name correspond au setter, et value ou ref pour les valeurs simples ou les références à d'autres beans.