Введение в Spring IoC Container и Beans
В этом посте рассказывается о реализации в Spring Framework принципа инверсии контроля (IoC, Inversion of Control). IoC также известен как внедрение зависимостей (DI, dependency injection). Это процесс, при котором объекты определяют свои зависимости (то есть другие объекты, с которыми они работают) только через аргументы конструктора, аргументы метода фабрики или свойства, которые устанавливаются в экземпляре объекта после того, как он создан или возвращен из метода фабрики. Затем контейнер внедряет эти зависимости при создании компонента (bean). Этот процесс по своей сути является инверсией (отсюда и название, инверсия контроля) самого компонента, управляющего созданием экземпляров или расположением его зависимостей, с помощью прямого конструирования классов или механизма, такого как паттерн Service Locator.
Пакеты org.springframework.beans и org.springframework.context являются основой для контейнера IoC Spring Framework. Интерфейс BeanFactory предоставляет расширенный механизм конфигурации, способный управлять объектами любого типа. ApplicationContext - это подчиненный интерфейс BeanFactory. Он добавляет:
- Более простую интеграцию с функциями Spring AOP
- Обработку ресурса сообщения (для использования в интернационализации)
- Публикацию событий
- Специфичные для прикладного уровня контексты, такие как WebApplicationContext для использования в веб-приложениях.
Короче говоря, BeanFactory предоставляет инфраструктуру конфигурации и базовые функциональные возможности, а ApplicationContext добавляет больше специфических для enterprise функций. ApplicationContext является полным расширенным набором BeanFactory.
В Spring объекты, образующие основу вашего приложения и управляемые контейнером Spring IoC, называются bean-компонентами. Bean - это объект, который создается, собирается и иным образом управляется контейнером Spring IoC. В противном случае bean - это просто один из множества объектов в вашем приложении. Beans и их зависимости отражаются в метаданных конфигурации, используемых контейнером.
Читайте также:
- Spring Beans и внедрение зависимостей
- Структурирование кода при использовании Spring Boot
- Разработка вашего первого Spring Boot приложения
Комментарии
Отправить комментарий