Что такое контекст приложения и bean factory в spring

Возможный дубликат:
BeanFactory vs ApplicationContext

Простое значение слова контекста приложения и bean factory в spring.

Ответ 1

BeanFactory

BeanFactory - это фактический контейнер, который создает, настраивает и управляет несколькими beans. Эти beans обычно сотрудничают друг с другом и, следовательно, имеют зависимости между собой. Эти зависимости отражаются в конфигурационных данных, используемых BeanFactory (хотя некоторые зависимости могут не отображаться как данные конфигурации, а скорее быть функцией программных взаимодействий между beans во время выполнения).

ApplicationContext

В то время как пакет beans предоставляет базовые функции для управления и управления beans, часто программным способом, пакет контекста добавляет ApplicationContext, что улучшает функциональность BeanFactory в более ориентированном на каркас стиле. Многие пользователи будут использовать ApplicationContext полностью декларативно, даже не создавая его вручную, а вместо этого полагаясь на классы поддержки, такие как ContextLoader, чтобы автоматически запускать ApplicationContext как часть обычного процесса запуска веб-сайта Java EE, приложение. Конечно, по-прежнему можно программно создать ApplicationContext.

Основой для пакета контекста является интерфейс ApplicationContext, расположенный в пакете org.springframework.context. Получив из интерфейса BeanFactory, он предоставляет все функции BeanFactory. Чтобы позволить работать более ориентированным на каркас образом, используя слоирование и иерархические контексты, пакет контекста также обеспечивает следующее:

  • MessageSource, обеспечивающий доступ к сообщениям в стиле i18n

  • Доступ к ресурсам, таким как URL-адреса и файлы

  • Распространение событий на beans, реализующее интерфейс ApplicationListener

  • Загрузка нескольких (иерархических) контекстов, позволяющих каждому сфокусироваться на одном конкретном слое, например веб-уровне приложения

Поскольку ApplicationContext включает в себя все функции BeanFactory, обычно рекомендуется использовать его в BeanFactory, за исключением нескольких ограниченных ситуаций, например, возможно, в апплете, где потребление памяти может быть критическим, и несколько лишних килобайт могут иметь значение. В следующих разделах описана функциональность, которая ApplicationContext добавляет базовые возможности BeanFactory.

http://static.springsource.org/spring/docs/1.2.x/reference/beans.html