logo

IoC konteineris

  1. IoC konteineris
  2. Naudojant BeanFactory
  3. „ApplicationContext“ naudojimas

IoC konteineris yra atsakingas už objektų egzistavimą, konfigūravimą ir surinkimą. IoC konteineris gauna informaciją iš XML failo ir veikia atitinkamai. Pagrindinės IoC konteinerio užduotys yra šios:

  • kad būtų sukurta programos klasė
  • konfigūruoti objektą
  • surinkti priklausomybes tarp objektų

Yra dviejų tipų IoC konteineriai. Jie yra:

    BeanFactory ApplicationContext

„BeanFactory“ ir „ApplicationContext“ skirtumai

org.springframework.beans.factory. BeanFactory ir org.springframework.context. ApplicationContext sąsajos veikia kaip IoC konteineris. „ApplicationContext“ sąsaja sukurta „BeanFactory“ sąsajos viršuje. Jis prideda papildomų funkcijų nei „BeanFactory“, pvz., paprastas integravimas su Spring AOP, pranešimų išteklių tvarkymas (skirtas I18N), įvykių plitimas, specifinis programos lygmens kontekstas (pvz., WebApplicationContext) žiniatinklio programai. Taigi geriau naudoti „ApplicationContext“ nei „BeanFactory“.

Naudojant BeanFactory

„XmlBeanFactory“ yra „BeanFactory“ sąsajos diegimo klasė. Norėdami naudoti BeanFactory, turime sukurti XmlBeanFactory klasės egzempliorių, kaip nurodyta toliau:

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

XmlBeanFactory klasės konstruktorius gauna Resource objektą, todėl turime perduoti išteklių objektą, kad sukurtume BeanFactory objektą.


„ApplicationContext“ naudojimas

ClassPathXmlApplicationContext klasė yra ApplicationContext sąsajos įgyvendinimo klasė. Turime sukurti ClassPathXmlApplicationContext klasę, kad galėtume naudoti ApplicationContext, kaip nurodyta toliau:

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

ClassPathXmlApplicationContext klasės konstruktorius gauna eilutę, todėl galime perduoti xml failo pavadinimą, kad sukurtume ApplicationContext egzempliorių.

atsisiųskite pavyzdį, kad galėtumėte naudoti ApplicationContext