Встречается на собеседованиях • сегодня

В чем разница между BeanFactory и ApplicationContext в Spring

BeanFactory и ApplicationContext — это два уровня контейнеров Spring, но ApplicationContext расширяет BeanFactory и добавляет дополнительные возможности.

Основные различия:

  • Функциональность: BeanFactory предоставляет базовые функции DI, а ApplicationContext добавляет AOP, интернационализацию, события, интеграцию с другими фреймворками (например, Spring MVC).
  • Ленивая инициализация: BeanFactory лениво загружает бины (по запросу), а ApplicationContext загружает их сразу при старте (еager loading), что помогает выявить ошибки конфигурации раньше.
  • Использование: ApplicationContext рекомендуется для большинства приложений, BeanFactory — для ресурсоемких систем, где важна ленивая загрузка.

Пример:

java
// BeanFactory
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));
MyBean bean = factory.getBean(MyBean.class);

// ApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
MyBean bean = context.getBean(MyBean.class);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы