logo

IoC контейнер

  1. IoC контейнер
  2. Използване на BeanFactory
  3. Използване на ApplicationContext

Контейнерът IoC е отговорен за създаване, конфигуриране и сглобяване на обектите. IoC контейнерът получава информация от XML файла и работи съответно. Основните задачи, изпълнявани от IoC контейнера, са:

  • за инстанциране на класа на приложението
  • за конфигуриране на обекта
  • за сглобяване на зависимостите между обектите

Има два вида IoC контейнери. Те са:

    BeanFactory Контекст на приложението

Разлика между BeanFactory и ApplicationContext

org.springframework.beans.factory. BeanFactory и org.springframework.context. Контекст на приложението интерфейсите действат като IoC контейнер. Интерфейсът ApplicationContext е изграден върху интерфейса на BeanFactory. Добавя някои допълнителни функции от BeanFactory, като проста интеграция с AOP на Spring, обработка на ресурсите за съобщения (за I18N), разпространение на събития, специфичен контекст на приложния слой (напр. WebApplicationContext) за уеб приложение. Така че е по-добре да използвате ApplicationContext отколкото BeanFactory.

Използване на BeanFactory

XmlBeanFactory е класът за внедряване на интерфейса BeanFactory. За да използваме BeanFactory, трябва да създадем екземпляра на класа XmlBeanFactory, както е дадено по-долу:

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

Конструкторът на класа XmlBeanFactory получава обекта Resource, така че трябва да предадем обекта ресурс, за да създадем обекта на BeanFactory.


Използване на ApplicationContext

Класът ClassPathXmlApplicationContext е класът за изпълнение на интерфейса ApplicationContext. Трябва да инстанцираме класа ClassPathXmlApplicationContext, за да използваме ApplicationContext, както е дадено по-долу:

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

Конструкторът на класа ClassPathXmlApplicationContext получава низ, така че можем да предадем името на xml файла, за да създадем екземпляра на ApplicationContext.

изтеглете примера, за да използвате ApplicationContext