Возможный дубликат:
BeanFactory vs ApplicationContext
Простое значение слова контекста приложения и bean factory в spring.
Возможный дубликат:
BeanFactory vs ApplicationContext
Простое значение слова контекста приложения и bean factory в spring.
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