English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Contenitore IoC di Spring

Il container IoC è responsabile dell'istanziamento, della configurazione e dell'assemblaggio degli oggetti. Il container IoC ottiene le informazioni dai file XML e lavora di conseguenza. Le principali attività eseguite dal container IoC sono:

Instanziare le classi dell'applicazione Configurare gli oggetti Assemblare le dipendenze tra gli oggetti

Ci sono due tipi di container IoC. Sono:

BeanFactory ApplicationContext

La differenza tra BeanFactory e ApplicationContext

org.springframework.beans.factory. BeanFactory e org.springframework.context. ApplicationContext L'interfaccia di interfaccia funge da container IoC. L'interfaccia ApplicationContext è costruita sulla cima dell'interfaccia BeanFactory. Aggiunge alcune funzioni aggiuntive rispetto a BeanFactory, come l'integrazione semplice con AOP di Spring, la gestione delle risorse di messaggio (per I18N), la diffusione degli eventi, il contesto specifico dell'applicazione del livello di applicazione Web (ad esempio WebApplicationContext). Pertanto, utilizzare ApplicationContext è meglio di utilizzare BeanFactory.

Uso di BeanFactory

XmlBeanFactory è un'implementazione dell'interfaccia BeanFactory. Per utilizzare BeanFactory, dobbiamo creare l'istanza della classe XmlBeanFactory, come segue:

Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);

Il costruttore della classe XmlBeanFactory accetta un oggetto Resource, quindi dobbiamo passare questo oggetto risorsa per creare l'oggetto BeanFactory.


Uso di ApplicationContext

La classe ClassPathXmlApplicationContext è un'implementazione della interfaccia ApplicationContext. Dobbiamo istanziare la classe ClassPathXmlApplicationContext per utilizzare l'ApplicationContext, come segue:

ApplicationContext context = 
    new ClassPathXmlApplicationContext("applicationContext.xml");

Il costruttore della classe ClassPathXmlApplicationContext accetta una stringa, quindi possiamo passare il nome del file xml per creare l'istanza dell'ApplicationContext.