logo

IoC-behållare

  1. IoC-behållare
  2. Använder BeanFactory
  3. Använder ApplicationContext

IoC-behållaren ansvarar för att instansiera, konfigurera och montera objekten. IoC-behållaren får information från XML-filen och fungerar därefter. De huvudsakliga uppgifterna som utförs av IoC-behållaren är:

  • för att instansiera applikationsklassen
  • för att konfigurera objektet
  • att sammanställa beroenden mellan objekten

Det finns två typer av IoC-behållare. Dom är:

    BeanFactory ApplicationContext

Skillnaden mellan BeanFactory och ApplicationContext

org.springframework.beans.factory. BeanFactory och org.springframework.context. ApplicationContext gränssnitt fungerar som IoC-behållaren. ApplicationContext-gränssnittet är byggt ovanpå BeanFactory-gränssnittet. Den lägger till lite extra funktionalitet än BeanFactory som enkel integration med Springs AOP, meddelanderesurshantering (för I18N), händelseutbredning, applikationslagerspecifik kontext (t.ex. WebApplicationContext) för webbapplikation. Så det är bättre att använda ApplicationContext än BeanFactory.

Använder BeanFactory

XmlBeanFactory är implementeringsklassen för BeanFactory-gränssnittet. För att använda BeanFactory måste vi skapa instansen av XmlBeanFactory-klassen enligt nedan:

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

Konstruktören av XmlBeanFactory-klassen tar emot Resource-objektet så vi måste skicka resursobjektet för att skapa BeanFactory-objektet.


Använder ApplicationContext

Klassen ClassPathXmlApplicationContext är implementeringsklassen för ApplicationContext-gränssnittet. Vi måste instansiera klassen ClassPathXmlApplicationContext för att använda ApplicationContext enligt nedan:

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

Konstruktören för klassen ClassPathXmlApplicationContext tar emot sträng, så vi kan skicka namnet på xml-filen för att skapa instansen ApplicationContext.

ladda ner exemplet för att använda ApplicationContext