De IoC-container is verantwoordelijk voor het instantiëren, configureren en assembleren van de objecten. De IoC-container haalt informatie uit het XML-bestand en werkt dienovereenkomstig. De belangrijkste taken die door IoC-container worden uitgevoerd, zijn:
- om de toepassingsklasse te instantiëren
- om het object te configureren
- om de afhankelijkheden tussen de objecten samen te stellen
Er zijn twee soorten IoC-containers. Zij zijn:
Verschil tussen BeanFactory en ApplicationContext
De org.springframework.beans.factory. BonenFabriek en de org.springframework.context. ApplicatieContext interfaces fungeert als de IoC-container. De ApplicationContext-interface is bovenop de BeanFactory-interface gebouwd. Het voegt wat extra functionaliteit toe dan BeanFactory, zoals eenvoudige integratie met Spring's AOP, afhandeling van berichtbronnen (voor I18N), voortplanting van gebeurtenissen, applicatielaagspecifieke context (bijv. WebApplicationContext) voor webapplicaties. Het is dus beter om ApplicationContext te gebruiken dan BeanFactory.
Gebruik BeanFactory
De XmlBeanFactory is de implementatieklasse voor de BeanFactory-interface. Om de BeanFactory te gebruiken, moeten we de instantie van de klasse XmlBeanFactory maken, zoals hieronder weergegeven:
Resource resource=new ClassPathResource('applicationContext.xml'); BeanFactory factory=new XmlBeanFactory(resource);
De constructor van de klasse XmlBeanFactory ontvangt het Resource-object, dus we moeten het resource-object doorgeven om het object van BeanFactory te maken.
Met behulp van ApplicationContext
De ClassPathXmlApplicationContext-klasse is de implementatieklasse van de ApplicationContext-interface. We moeten de ClassPathXmlApplicationContext-klasse instantiëren om de ApplicationContext te gebruiken, zoals hieronder weergegeven:
ApplicationContext context = new ClassPathXmlApplicationContext('applicationContext.xml');
De constructor van de klasse ClassPathXmlApplicationContext ontvangt een tekenreeks, zodat we de naam van het XML-bestand kunnen doorgeven om het exemplaar van ApplicationContext te maken.
download het voorbeeld om ApplicationContext te gebruiken