Der IoC-Container ist für die Instanziierung, Konfiguration und Assemblierung der Objekte verantwortlich. Der IoC-Container erhält Informationen aus der XML-Datei und arbeitet entsprechend. Die Hauptaufgaben des IoC-Containers sind:
- um die Anwendungsklasse zu instanziieren
- um das Objekt zu konfigurieren
- um die Abhängigkeiten zwischen den Objekten zusammenzustellen
Es gibt zwei Arten von IoC-Containern. Sie sind:
Unterschied zwischen BeanFactory und dem ApplicationContext
Die org.springframework.beans.factory. BeanFactory und der org.springframework.context. Anwendungskontext interfaces fungiert als IoC-Container. Die ApplicationContext-Schnittstelle basiert auf der BeanFactory-Schnittstelle. Es bietet einige zusätzliche Funktionen als BeanFactory, z. B. eine einfache Integration mit Springs AOP, Nachrichtenressourcenverarbeitung (für I18N), Ereignisweitergabe und anwendungsschichtspezifischen Kontext (z. B. WebApplicationContext) für Webanwendungen. Daher ist es besser, ApplicationContext als BeanFactory zu verwenden.
Verwendung von BeanFactory
Die XmlBeanFactory ist die Implementierungsklasse für die BeanFactory-Schnittstelle. Um die BeanFactory verwenden zu können, müssen wir die Instanz der XmlBeanFactory-Klasse wie unten angegeben erstellen:
Resource resource=new ClassPathResource('applicationContext.xml'); BeanFactory factory=new XmlBeanFactory(resource);
Der Konstruktor der Klasse XmlBeanFactory empfängt das Ressourcenobjekt, daher müssen wir das Ressourcenobjekt übergeben, um das Objekt von BeanFactory zu erstellen.
Verwenden von ApplicationContext
Die ClassPathXmlApplicationContext-Klasse ist die Implementierungsklasse der ApplicationContext-Schnittstelle. Wir müssen die ClassPathXmlApplicationContext-Klasse instanziieren, um den ApplicationContext wie unten angegeben zu verwenden:
ApplicationContext context = new ClassPathXmlApplicationContext('applicationContext.xml');
Der Konstruktor der ClassPathXmlApplicationContext-Klasse empfängt einen String, sodass wir den Namen der XML-Datei übergeben können, um die Instanz von ApplicationContext zu erstellen.
Laden Sie das Beispiel herunter, um ApplicationContext zu verwenden