Conteneur IoC

Le conteneur IoC est responsable de l’instanciation, de la configuration et de l’assemblage des objets. Le conteneur IoC reçoit des informations du fichier XML et travaille en conséquence.Les principales tâches effectuées par le conteneur IoC sont :

  • instaurer la classe d’application
  • configurer l’objet
  • assembler les dépendances entre les objets

Il existe deux types de conteneurs IoC. Ce sont :

  1. BeanFactory
  2. ApplicationContext

Différence entre BeanFactory et l’ApplicationContext

Les interfaces org.springframework.beans.factory.BeanFactory et org.springframework.context.ApplicationContext font office de conteneur IoC. L’interface ApplicationContext est construite au-dessus de l’interface BeanFactory. Elle ajoute quelques fonctionnalités supplémentaires par rapport à BeanFactory, telles que l’intégration simple avec la POA de Spring, la gestion des ressources de messages (pour I18N), la propagation d’événements, le contexte spécifique à la couche d’application (par exemple WebApplicationContext) pour les applications Web. Il est donc préférable d’utiliser ApplicationContext plutôt que BeanFactory.

Utiliser BeanFactory

La XmlBeanFactory est la classe d’implémentation de l’interface BeanFactory. Pour utiliser le BeanFactory, nous devons créer l’instance de la classe XmlBeanFactory comme indiqué ci-dessous :

Le constructeur de la classe XmlBeanFactory reçoit l’objet Ressource donc nous devons passer l’objet ressource pour créer l’objet de BeanFactory.

Utiliser ApplicationContext

La classe ClassPathXmlApplicationContext est la classe d’implémentation de l’interface ApplicationContext. Nous devons instancier la classe ClassPathXmlApplicationContext pour utiliser l’ApplicationContext comme indiqué ci-dessous :

Le constructeur de la classe ClassPathXmlApplicationContext reçoit une chaîne de caractères, nous pouvons donc passer le nom du fichier xml pour créer l’instance de l’ApplicationContext.