Spring - Conteneurs IoC

Le conteneur Spring est au cœur de Spring Framework. Le conteneur va créer les objets, les câbler, les configurer et gérer leur cycle de vie complet de la création à la destruction. Le conteneur Spring utilise DI pour gérer les composants qui composent une application. Ces objets sont appelés Spring Beans, dont nous parlerons dans le chapitre suivant.

Le conteneur obtient ses instructions sur les objets à instancier, configurer et assembler en lisant les métadonnées de configuration fournies. Les métadonnées de configuration peuvent être représentées par XML, annotations Java ou code Java. Le diagramme suivant représente une vue d'ensemble du fonctionnement de Spring. Le conteneur Spring IoC utilise les classes Java POJO et les métadonnées de configuration pour produire un système ou une application entièrement configuré et exécutable.

Spring fournit les deux types de conteneurs distincts suivants.

N ° Sr. Conteneur et description
1 Récipient Spring BeanFactory

Il s'agit du conteneur le plus simple fournissant le support de base pour DI et il est 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.

2 Conteneur Spring ApplicationContext

Ce conteneur ajoute des fonctionnalités plus spécifiques à l'entreprise, telles que la possibilité de résoudre des messages textuels à partir d'un fichier de propriétés et la possibilité de publier des événements d'application sur des écouteurs d'événements intéressés. Ce conteneur est défini par l' interface org.springframework.context.ApplicationContext .

Le conteneur ApplicationContext inclut toutes les fonctionnalités du conteneur BeanFactory , il est donc généralement recommandé par rapport à BeanFactory . BeanFactory peut toujours être utilisé pour des applications légères comme les appareils mobiles ou les applications basées sur des applets où le volume et la vitesse des données sont importants.