Я встретил термины "управляемые bean" и "поддержка bean" на нескольких форумах. Многие думают, что оба они одинаковы. Но, кажется, есть небольшая разница. Может ли кто-нибудь помочь мне понять точную разницу между этими двумя терминами?
Разница между управляемыми bean и поддержкой bean
Ответ 1
Изменив мой первоначальный ответ, между ними нет значимой разницы. tutorial говорит, что поддержка beans позже объявляется управляемой beans. Итак, подведем итог:
- поддержка bean - это класс из контекста
- управляемый bean является резервной bean, когда он объявляется для использования с управляемым JSF средством bean.
Я никогда не использовал термин "поддержка bean", потому что я не использовал его. Поэтому вам может быть лучше использовать только "управляемый bean". Обратите внимание, что в JSF 2.0 (и в CDI) у вас есть @ManagedBean
- поэтому ваш bean является управляемым bean.
BalusC предположил, что "поддержка bean" является определением, а "управляемый bean" является экземпляром. Хотя это, возможно, и было оригинальной идеей создателей JSF, я не думаю, что это стоит поддержать. CDI и spring, например, не имеют другого термина для "bean definition" и "bean instance".
Спецификация JSF 2.0 упоминает термин "поддержка bean" только несколько раз, без какого бы то ни было определения. В дополнение к этому он упоминает "поддержка bean class", что может означать, что "поддержка bean" != "Поддержка bean class", что еще больше путается.
Итак, чтобы заключить - для меня оба взаимозаменяемы, и я придерживаюсь только использования "управляемого bean"
Ответ 2
Что управляется Bean?
Объекты JavaBean, управляемые реализацией JSF, называются управляемыми beans. Управляемый bean описывает, как создается и управляется bean. Это не имеет никакого отношения к функциям bean.
Что такое поддержка Bean?
Резервное копирование beans - это компоненты JavaBeans, связанные с компонентами пользовательского интерфейса, используемыми на странице. Управление резервным копированием bean отделяет определение объектов компонентов пользовательского интерфейса от объектов, которые выполняют данные обработки и хранения данных, специфичные для приложения. Подсистема bean определяет свойства и обработку-логики, связанные с компонентами пользовательского интерфейса, используемыми на странице. Каждое свойство backing
Каковы различия между резервным bean и управляемым Bean?
Резервное копирование beans - это просто соглашение, подтип JSF Managed beans, который имеет очень конкретную цель. В резервном bean нет ничего особенного, что отличает его от любого другого управляемого bean, кроме его использования.
MB: управляемый bean; BB: поддержка Bean
1) BB: поддержка bean - это любой bean, на который ссылается форма.
MB. Управляемый bean представляет собой резервную копию bean, которая была зарегистрирована в JSF (в faces-config.xml), и она автоматически создавалась (и, при необходимости, инициализирована) JSF, когда она необходимо.
Преимущество управляемого beans заключается в том, что структура JSF автоматически создаст эти beans, при необходимости инициализируя их параметрами, указанными в faces-config.xml.
2) BB: поддержка beans должна определяться только в области запроса
MB: управляемые beans, созданные JSF, могут быть сохранены в пределах области запроса, сеанса или приложения.
Резервное копирование beans должно быть определено в области запроса, существует в отношениях "один к одному" с конкретной страницей и содержать весь код обработки событий, специфичный для страницы. В сценарии реального мира нескольким страницам может потребоваться совместная поддержка bean за кулисами. Поддержка bean содержит не только данные просмотра, но и поведение, связанное с этими данными.
Ответ 3
Резервное копирование Bean - это любой Bean, связанный с JSF UI. а Managed Bean - это любой bean
Ответ 4
Проще говоря,
Вы как разработчик:
@ManagedBean(name="managedBean")
@RequestScoped
public class BackingBean {
// ...
}
JSF как bean структура управления работает под обложками:
BackingBean managedBean = new BackingBean();
externalContext.getRequestMap().put("managedBean", managedBean);
Таким образом, поддержка bean - это конкретный класс, который разработан вами и обычно привязан к представлению, а управляемый bean - это конкретный экземпляр, который находится под обложками, созданными и помещенными в требуемый объем bean структура управления по запросу и доступная #{managedBean}
в EL. Вам никогда не нужно создавать и помещать его в сферу действия самостоятельно. Если вы это сделали, то нет средств для bean, управляемых инфраструктурой.
CDI @Named
и Spring @Component
делают по существу то же самое, что и JSF @ManagedBean
.
Чтобы узнать больше о том, как bean структуры управления, такие как JSF, CDI и Spring найти и создать свой управляемый beans, следующий инструмент устранения неполадок должен обеспечить глубокое понимание: Идентификация и решение javax.el.PropertyNotFoundException: Target Unreachable.
См. также:
Ответ 5
http://docs.oracle.com/javaee/5/tutorial/doc/bnaqm.html говорит
Типичное приложение JavaServer Faces включает в себя один или несколько поддерживающих beans, каждый из которых является управляемым JavaServer Faces bean, который связан с компонентами пользовательского интерфейса, используемыми на определенной странице. Управляемые beans являются компонентами JavaBeans (см. Компоненты JavaBeans), которые можно настроить с помощью управляемого объекта bean, которая описана в разделе Настройка Beans. В этом разделе представлены основные понятия по созданию, настройке и использованию поддержки beans в приложении.
http://docs.oracle.com/javaee/6/tutorial/doc/bnaqm.html не упоминает о поддержке bean".
Ответ 6
Я бы сказал, что поддержка bean - это bean, используемая строго для целей пользовательского интерфейса, то есть ссылка в файлах jsp. В конце концов, все beans, управляемые контейнером JSF, управляются beans, однако существуют различные контексты, в которых они могут использоваться. Подробнее см. Принятый ответ здесь: JSF: ManagedBean, хорошее место для решения бизнес-логики?
Ответ 7
Управляемые Beans управляются (создаются и уничтожаются) контейнером.
Резервное копирование Beans управляется beans, что обратные представления как модели данных.
Ответ 8
Резервное копирование Bean является видом управляемого Bean. Управляемый Bean - это объект (т.е. экземпляр класса), созданный контейнером (поэтому он называется управляемым), и, конечно, у Object есть класс, и если вам кажется, вы можете создать столько экземпляров этого класс, независимо от того, какую аннотацию они имеют с m = new MyManagedBean(), это будет Not-So-Managed- Bean или, по крайней мере, не управляется контейнером, а управляется вами:)
И поддержка Bean - это своего рода управляемый Bean (как это сказал Сантош: соглашение), которое обычно использует JSF requestScope (но в некоторых инфраструктурах, таких как ADF, существует даже назначенная область только для поддержки beans называемый backingBeanScope - вы бы никогда не догадались).
И да... Аромат jsf, управляемый beans, который можно было бы вызвать BackingBeans, используется для связывания UIComponents и записи ActionListeners, в то время как позволяет сказать, что "модель beans" будет идти в области сеанса, например, и удерживать ваши данные
Ответ 9
Я взял очень хороший (дорогой) курс по JSF. То, что я узнал, есть только то, что объясняется в http://www.avromroyfaderman.com/2008/07/from-backing-bean-to-managed-bean/.
Возможно, это различие не является теоретическим различием или этимологией терминов, но это, безусловно, очень практичный способ настройки вашей архитектуры, особенно если вы являетесь частью большого проекта с несколькими разработчиками и/или должны поддерживать много кода в течение длительного времени. В основном идея заключается в том, что вы помещаете свою бизнес-логику пользовательского интерфейса в Managed Beans. Резервное копирование beans разрежено и просто поддерживает страницу.
Ответ 10
С этой ссылкой JSF - управляемый Beans
Управляемый Bean:
Управляемый Bean - это обычный класс Java Bean, зарегистрированный в JSF. Другими словами, Managed Beans является java Bean, управляемым инфраструктурой JSF.
С этой ссылкой Создание и использование резервной копии Bean для веб-страницы:
Поддержка Bean:
В JSF поддержка Beans - это JavaBeans, используемые главным образом для обеспечения логики пользовательского интерфейса и управления данными между веб-уровнем и бизнес-уровнем приложения (аналогично объекту передачи данных). Как правило, у вас есть одна поддержка Bean на странице JSF. Подсистема Bean содержит логику и свойства для компонентов пользовательского интерфейса, используемых на странице.
Примечание:
Для обеспечения доступности Bean, когда приложение запускается, вы зарегистрируйте его как управляемый Bean с именем и областью
Ответ 11
Управляемый Bean:
Управляемый bean представляет собой резервную копию bean, которая была зарегистрирована в JSF (в faces-config.xml) или с помощью аннотаций. Управляемый bean автоматически создается (и, при необходимости, инициализируется) JSF, когда это необходимо.
Если вы используете Managed bean в своем приложении, вы должны использовать следующий синтаксис на странице JSF для установки или получения значений формы bean
<h:inputText value="#{user.name}"/>
Поддержка Bean:
A bean, который содержит некоторые или все объекты компонента веб-формы. Такой bean называется основой bean для веб-формы.
Когда вы используете резервную копию bean, вам необходимо подключить компоненты на форме к тем из bean. Для этого используется атрибут привязки
Пример:
<h:inputText binding="#{myForm.myComponent}" .../>
Наблюдайте за тем, как мы получаем или устанавливаем значения для Backing bean.
Резервное копирование Beans должно быть определено в области запроса, существует в отношениях "один к одному" с определенной страницей и содержать весь код обработки событий на странице
Надеюсь, что это полезно кому-то.