logo

IoC-beholder

  1. IoC-beholder
  2. Bruger BeanFactory
  3. Brug af ApplicationContext

IoC-containeren er ansvarlig for at instansiere, konfigurere og samle objekterne. IoC-beholderen får informationer fra XML-filen og fungerer derefter. De vigtigste opgaver udført af IoC container er:

  • for at instansiere applikationsklassen
  • for at konfigurere objektet
  • at samle afhængighederne mellem objekterne

Der er to typer IoC-beholdere. De er:

    BeanFactory Ansøgningskontekst

Forskellen mellem BeanFactory og ApplicationContext

org.springframework.beans.factory. BeanFactory og org.springframework.context. Ansøgningskontekst grænseflader fungerer som IoC-beholderen. ApplicationContext-grænsefladen er bygget oven på BeanFactory-grænsefladen. Det tilføjer noget ekstra funktionalitet end BeanFactory, såsom simpel integration med Springs AOP, håndtering af beskedressourcer (til I18N), hændelsesudbredelse, applikationslagsspecifik kontekst (f.eks. WebApplicationContext) til webapplikation. Så det er bedre at bruge ApplicationContext end BeanFactory.

Bruger BeanFactory

XmlBeanFactory er implementeringsklassen for BeanFactory-grænsefladen. For at bruge BeanFactory skal vi oprette instansen af ​​XmlBeanFactory-klassen som angivet nedenfor:

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

Konstruktøren af ​​XmlBeanFactory-klassen modtager Resource-objektet, så vi skal sende ressourceobjektet for at skabe BeanFactory-objektet.


Brug af ApplicationContext

ClassPathXmlApplicationContext-klassen er implementeringsklassen for ApplicationContext-grænsefladen. Vi er nødt til at instansiere ClassPathXmlApplicationContext-klassen for at bruge ApplicationContext som angivet nedenfor:

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

Konstruktøren af ​​ClassPathXmlApplicationContext-klassen modtager streng, så vi kan videregive navnet på xml-filen for at oprette forekomsten af ​​ApplicationContext.

download eksemplet for at bruge ApplicationContext