IoC-контейнер в Spring — это основной движок фреймворка, отвечающий за создание, настройку и управление жизненным циклом объектов (бинов). Он реализует принцип инверсии управления (Inversion of Control), когда фреймворк управляет созданием и связыванием зависимостей, а не сам объект.
Как работает:
@Configuration, @Bean), или JavaConfig.BeanDefinition для каждого бина. BeanDefinition содержит информацию о классе бина, его области видимости (scope), зависимости, свойства и прочие настройки.@PostConstruct или init-method).@PreDestroy или destroy-method).Основные интерфейсы IoC-контейнера:
BeanFactory: Базовый интерфейс, предоставляющий функциональность управления бинами (получение по имени, типу).ApplicationContext: Расширение BeanFactory, добавляющее функциональность для интернационализации, событий, AOP и интеграции с веб-контекстами. Является наиболее часто используемым интерфейсом.Пример конфигурации с аннотациями:
java
Получение бина из контейнера:
java