Primavera - Contenitori IoC

Il contenitore Spring è il fulcro di Spring Framework. Il contenitore creerà gli oggetti, li collegherà insieme, li configurerà e gestirà il loro ciclo di vita completo dalla creazione alla distruzione. Il contenitore Spring utilizza DI per gestire i componenti che compongono un'applicazione. Questi oggetti sono chiamati Spring Beans, di cui parleremo nel prossimo capitolo.

Il contenitore ottiene le istruzioni su quali oggetti istanziare, configurare e assemblare leggendo i metadati di configurazione forniti. I metadati di configurazione possono essere rappresentati da XML, annotazioni Java o codice Java. Il diagramma seguente rappresenta una visione di alto livello di come funziona Spring. Il contenitore Spring IoC utilizza classi POJO Java e metadati di configurazione per produrre un sistema o un'applicazione completamente configurati ed eseguibili.

Spring fornisce i seguenti due distinti tipi di contenitori.

Sr.No. Contenitore e descrizione
1 Contenitore Spring BeanFactory

Questo è il contenitore più semplice che fornisce il supporto di base per DI ed è definito dall'interfaccia org.springframework.beans.factory.BeanFactory . BeanFactory e le interfacce correlate, come BeanFactoryAware, InitializingBean, DisposableBean, sono ancora presenti in Spring ai fini della compatibilità con le versioni precedenti di un gran numero di framework di terze parti che si integrano con Spring.

2 Contenitore Spring ApplicationContext

Questo contenitore aggiunge funzionalità più specifiche dell'organizzazione come la capacità di risolvere messaggi di testo da un file delle proprietà e la capacità di pubblicare eventi dell'applicazione su listener di eventi interessati. Questo contenitore è definito dall'interfaccia org.springframework.context.ApplicationContext .

Il contenitore ApplicationContext include tutte le funzionalità del contenitore BeanFactory , quindi è generalmente consigliato rispetto a BeanFactory . BeanFactory può ancora essere utilizzato per applicazioni leggere come dispositivi mobili o applicazioni basate su applet in cui il volume e la velocità dei dati sono significativi.