English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring фреймворк предоставляет два контейнера IOC, используемые для управления, конфигурации и операций с Bean. Один из них - это BeanFactory, а другой - контекст приложения.
Интерфейс контекста приложения расширяет BeanFactory, чтобы улучшить функции BeanFactory.
В новых версиях Spring BeanFactory заменяется ApplicationContext. Однако, existence BeanFactory необходимо для обратной совместимости.
Spring 2.0 и выше версий использует расширение точки расширения BeanPostProcessor (интерфейс предоставляет некоторые методы вызова обратного вызова, которые мы можем реализовать, чтобы настроить логику инсталляции, логику разрешения зависимостей и т.д.). Поэтому, если вы используете BeanFactory, то для использования некоторых функций (например, AOP и обработка транзакций) необходимо выполнить некоторые дополнительные настройки.
Номер | Ключ | Bean factory | Приложение |
---|---|---|---|
1 | Реализация | XMLBeanFactory реализует BeanFactory | FileSystemXmlApplicationContext, ClassPathXmlApplicationContext и AnnotationConfigWebApplicationContex реализуют ApplicationContext. Кроме того, ApplicationContext расширяет Beanfactory |
2 | Аннотация | Нет | Да |
3 | Инсталляция | Bean factory создает инстансы бинов, когда вызывается метод getBean(). | При запуске контейнера приложение создает инстанс бина. |
4 | Публикация событий | Bean factory не имеет возможности推送 событий на бины | Контекст приложения имеет возможность推送 событий на бины. |
5 | Механизм загрузки | Lazy loading | Агрессивная загрузка |