Il contenitore Spring è al centro del Framework Spring. Il contenitore creerà gli oggetti, li cablerà insieme, li configurerà e gestirà il loro ciclo di vita completo dalla creazione alla distruzione. Il contenitore Spring usa DI per gestire i componenti che compongono un’applicazione. Questi oggetti sono chiamati Spring Beans, di cui parleremo nel prossimo capitolo.
Il contenitore riceve 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 seguente diagramma rappresenta una visione di alto livello di come funziona Spring. Il contenitore Spring IoC fa uso delle classi Java POJO e dei metadati di configurazione per produrre un sistema o un’applicazione completamente configurata ed eseguibile.
Spring fornisce i seguenti due tipi distinti di contenitori.
Sr.No. | Container & Descrizione | |
---|---|---|
1 | Spring BeanFactory Container
Questo è il contenitore più semplice che fornisce il supporto di base per la DI ed è definito dall’interfaccia org.springframework.beans.factory.BeanFactory. La BeanFactory e le relative interfacce, come BeanFactoryAware, InitializingBean, DisposableBean, sono ancora presenti in Spring allo scopo di una compatibilità all’indietro con un gran numero di framework di terze parti che si integrano con Spring. |
|
2 | Contenitore Spring ApplicationContext
Questo contenitore aggiunge funzionalità più specifiche dell’impresa come la capacità di risolvere messaggi testuali da un file di proprietà e la capacità di pubblicare eventi dell’applicazione agli ascoltatori di eventi interessati. Questo contenitore è definito dall’interfaccia org.springframework.context.ApplicationContext. |
Il contenitore ApplicationContext include tutte le funzionalità del BeanFactorycontainer, quindi è generalmente consigliato rispetto a BeanFactory. BeanFactory può ancora essere usato per applicazioni leggere come dispositivi mobili o applicazioni basate su applet dove il volume di dati e la velocità sono significativi.