Le conteneur Spring est au cœur du Framework Spring. 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 constituent une application. Ces objets sont appelés Spring Beans, que nous aborderons 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 soit par XML, soit par des annotations Java, soit par du code Java. Le diagramme suivant représente une vue de haut niveau 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 distincts de conteneurs suivants.
Sr.No. | Conteneur & Description |
---|---|
1 | Conteneur Spring BeanFactory
Il s’agit du conteneur le plus simple fournissant le support de base pour DI et est défini par l’interface org.springframework.beans.factory.BeanFactory. L’interface BeanFactory et les interfaces associées, telles que BeanFactoryAware, InitializingBean, DisposableBean, sont toujours présentes dans Spring à des fins de rétrocompatibilité 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 aux auditeurs 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 les 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.
.