IoC Container

Il contenitore IoC è responsabile di istanziare, configurare e assemblare gli oggetti. I compiti principali eseguiti dal contenitore IoC sono:

  • per istanziare la classe dell’applicazione
  • per configurare l’oggetto
  • per assemblare le dipendenze tra gli oggetti

Ci sono due tipi di contenitori IoC. Essi sono:

  1. BeanFactory
  2. ApplicationContext

Differenza tra BeanFactory e ApplicationContext

Le interfacce org.springframework.beans.factory.BeanFactory e org.springframework.context.ApplicationContext agiscono come contenitori IoC. L’interfaccia ApplicationContext è costruita sopra l’interfaccia BeanFactory. Aggiunge alcune funzionalità extra rispetto a BeanFactory come la semplice integrazione con Spring’s AOP, la gestione delle risorse dei messaggi (per I18N), la propagazione degli eventi, il contesto specifico del livello di applicazione (ad esempio WebApplicationContext) per le applicazioni web. Quindi è meglio usare ApplicationContext che BeanFactory.

Usare BeanFactory

La XmlBeanFactory è la classe di implementazione dell’interfaccia BeanFactory. Per usare BeanFactory, dobbiamo creare l’istanza della classe XmlBeanFactory come indicato sotto:

Il costruttore della classe XmlBeanFactory riceve l’oggetto Resource quindi dobbiamo passare l’oggetto resource per creare l’oggetto BeanFactory.

Usare ApplicationContext

La classe ClassPathXmlApplicationContext è la classe di implementazione dell’interfaccia ApplicationContext. Abbiamo bisogno di istanziare la classe ClassPathXmlApplicationContext per usare ApplicationContext come indicato di seguito:

Il costruttore della classe ClassPathXmlApplicationContext riceve una stringa, quindi possiamo passare il nome del file xml per creare l’istanza di ApplicationContext.