Spring - Contêineres IoC
O contêiner Spring é o núcleo do Spring Framework. O contêiner irá criar os objetos, conectá-los, configurá-los e gerenciar seu ciclo de vida completo, desde a criação até a destruição. O contêiner Spring usa DI para gerenciar os componentes que compõem um aplicativo. Esses objetos são chamados de Spring Beans, que discutiremos no próximo capítulo.
O contêiner obtém suas instruções sobre quais objetos instanciar, configurar e montar lendo os metadados de configuração fornecidos. Os metadados de configuração podem ser representados por XML, anotações Java ou código Java. O diagrama a seguir representa uma visão de alto nível de como o Spring funciona. O contêiner Spring IoC usa classes Java POJO e metadados de configuração para produzir um sistema ou aplicativo totalmente configurado e executável.
O Spring fornece os dois tipos distintos de contêiner a seguir.
Sr. Não. | Recipiente e descrição |
---|---|
1 | Spring BeanFactory Container Este é o contêiner mais simples que fornece o suporte básico para DI e é definido pela interface org.springframework.beans.factory.BeanFactory . O BeanFactory e as interfaces relacionadas, como BeanFactoryAware, InitializingBean, DisposableBean, ainda estão presentes no Spring com o propósito de compatibilidade com versões anteriores com um grande número de estruturas de terceiros que se integram ao Spring. |
2 | Spring ApplicationContext Container Este contêiner adiciona mais funcionalidades específicas da empresa, como a capacidade de resolver mensagens textuais de um arquivo de propriedades e a capacidade de publicar eventos de aplicativo para ouvintes de eventos interessados. Esse contêiner é definido pela interface org.springframework.context.ApplicationContext . |
O contêiner ApplicationContext inclui todas as funcionalidades do contêiner BeanFactory , portanto, é geralmente recomendado em vez do BeanFactory . O BeanFactory ainda pode ser usado para aplicativos leves, como dispositivos móveis ou aplicativos baseados em applet, onde o volume de dados e a velocidade são significativos.