logo

Kontener IoC

  1. Kontener IoC
  2. Korzystanie z fabryki fasoli
  3. Korzystanie z kontekstu aplikacji

Kontener IoC jest odpowiedzialny za tworzenie instancji, konfigurowanie i składanie obiektów. Kontener IoC pobiera informacje z pliku XML i zgodnie z nimi działa. Główne zadania realizowane przez kontener IoC to:

  • aby utworzyć instancję klasy aplikacji
  • aby skonfigurować obiekt
  • do składania zależności między obiektami

Istnieją dwa typy kontenerów IoC. Oni są:

    Fabryka Fasoli Kontekst aplikacji

Różnica między BeanFactory i ApplicationContext

Fabryka org.springframework.beans.factory. Fabryka Fasoli oraz org.springframework.context. Kontekst aplikacji interfejsy pełnią rolę kontenera IoC. Interfejs ApplicationContext jest zbudowany na bazie interfejsu BeanFactory. Dodaje dodatkowe funkcje niż BeanFactory, takie jak prosta integracja z AOP Springa, obsługa zasobów komunikatów (dla I18N), propagacja zdarzeń, kontekst specyficzny dla warstwy aplikacji (np. WebApplicationContext) dla aplikacji internetowych. Lepiej więc używać ApplicationContext niż BeanFactory.

Korzystanie z fabryki fasoli

XmlBeanFactory to klasa implementacji interfejsu BeanFactory. Aby skorzystać z BeanFactory, musimy utworzyć instancję klasy XmlBeanFactory, jak podano poniżej:

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

Konstruktor klasy XmlBeanFactory odbiera obiekt Resource, dlatego musimy przekazać obiekt Resource, aby utworzyć obiekt BeanFactory.


Korzystanie z kontekstu aplikacji

Klasa ClassPathXmlApplicationContext jest klasą implementacji interfejsu ApplicationContext. Musimy utworzyć instancję klasy ClassPathXmlApplicationContext, aby używać ApplicationContext, jak podano poniżej:

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

Konstruktor klasy ClassPathXmlApplicationContext otrzymuje ciąg znaków, dzięki któremu możemy przekazać nazwę pliku xml, aby utworzyć instancję ApplicationContext.

pobierz przykład, aby użyć ApplicationContext