Разница между управляемым bean и backing bean

Я столкнулся с терминами "управляемый bean" и "поддержка bean" на нескольких форумах. Многие люди думают, что они одинаковы. Но, кажется, есть небольшая разница. Может ли один помочь мне понять точную разницу между этими двумя понятиями?

11 ответов


изменение моего первоначального ответа-между ними нет существенной разницы. The учебник говорит, что вспомогательные бобы позже объявляются как управляемые бобы. Итак, подведем итог:

  • вспомогательный компонент-это класс вне контекста
  • управляемый компонент является резервным компонентом всякий раз, когда он объявляется для использования с объектом управляемого компонента JSF.

Я никогда не использовал термин "поддержка bean", потому что я не нашел для него пользы. Так возможно, вам лучше использовать только "управляемый Боб". Обратите внимание, что в JSF 2.0 (и в CDI) у вас есть @ManagedBean- таким образом, ваш боб является управляемым Бобом.

BalusC предположил, что" резервный компонент "является определением, а" управляемый компонент " - экземпляром. Хотя это могла быть оригинальная идея создателей JSF, я не думаю, что стоит ее поддерживать. Например, CDI и spring не имеют разных терминов для "определения bean "и"экземпляра bean".

спецификация JSF 2.0 упоминает термин "backing bean" всего несколько раз, без какого-либо определения. В дополнение к этому он упоминает "backing bean class", что может означать, что "backing bean" != "поддержка класса bean", что приводит к дальнейшей путанице.

Итак, чтобы заключить - для меня оба взаимозаменяемы, и я бы придерживался только использования "управляемого Боба"


что такое управляемый Bean-компонент?

объекты JavaBean, управляемые реализацией JSF, называются управляемыми бобами. Управляемый компонент описывает, как создается и управляется компонент. Это не имеет ничего общего с функциональностью компонента.

что такое поддержка Bean?

Backing beans-это компоненты JavaBeans, связанные с компонентами UI, используемыми на странице. Backing-bean management отделяет определение объектов компонентов пользовательского интерфейса от объектов которые выполняют прикладную обработку и хранят данные. Компонент поддержки определяет свойства и логику обработки, связанные с компонентами пользовательского интерфейса, используемыми на странице. Каждое свойство backing-bean привязано либо к экземпляру компонента, либо к его значению. Компонент Backing bean также определяет набор методов, выполняющих функции для компонента, такие как проверка данных компонента, обработка событий, запускаемых компонентом, и выполнение обработки, связанной с навигацией, когда активируется компонент.

каковы различия между вспомогательным и управляемым компонентами?

резервные бобы-это просто соглашение, подтип управляемых бобов JSF, которые имеют очень конкретную цель. В Резервном Бобе нет ничего особенного, что отличает его от любого другого управляемого Боба, кроме его использования.

MB : Управляемого Компонента ; BB: Поддержка Bean

1) BB: A поддержка bean-это любой bean, на который ссылается форма.

MB: управляемый компонент-это резервный компонент, зарегистрированный в JSF (в faces-config.xml) и он автоматически создается (и необязательно инициализируется) JSF, когда это необходимо.

преимущество управляемых компонентов заключается в том, что платформа JSF автоматически создает эти компоненты, при необходимости инициализируя их параметрами, указанными в faces-config.XML.

2) BB: Резервные бобы должны быть определены только в запрос области

MB: управляемые компоненты, созданные JSF, могут храниться в области запросов, сеансов или приложений .

резервные компоненты должны быть определены в области запроса, существовать в отношениях "один к одному" с определенной страницей и содержать весь код обработки событий страницы. В реальном сценарии нескольким страницам может потребоваться одна и та же поддержка Боб за кулисами. Резервный компонент содержит не только данные представления, но и поведение, связанное с этими данными.


Backing Bean-это любой компонент, связанный с JSF UI. в то время как управляемый bean-это любой bean


проще говоря,

вы как разработчик делаю:

@ManagedBean(name="managedBean")
@RequestScoped
public class BackingBean {
    // ...
}

JSF как Bean management framework делает под обложками:

BackingBean managedBean = new BackingBean();
externalContext.getRequestMap().put("managedBean", managedBean);

таким образом, бэк-бин-это конкретный класс, который разработан вами и обычно привязан к представлению, а управляемый бин-это конкретный экземпляр, который находится под обложками, созданными и помещенными в желаемую область фреймворком управления бином по требованию, и доступен #{managedBean} в EL. Вам никогда не нужно создать и положить его в осмотрите себя. Если вы это сделали, то нет никаких средств управляемого фреймворком компонента.

CDI @Named и весной @Component сделайте по существу то же самое, что и JSF @ManagedBean.

чтобы узнать больше о том, как структуры управления бобами, такие как JSF, CDI и Spring, находят и создают свои управляемые бобы, следующее средство устранения неполадок должно обеспечить глубокое понимание: идентификация и решение javax.Эль.PropertyNotFoundException: Цель Недостижима.

посмотреть также:


http://docs.oracle.com/javaee/5/tutorial/doc/bnaqm.html говорит

типичное приложение Javaserver Faces включает один или несколько вспомогательных компонентов, каждый из которых является управляемым компонентом JavaServer Faces, связанным с компонентами пользовательского интерфейса, используемыми на определенной странице. Управляемые компоненты-это компоненты JavaBeans (см. компоненты JavaBeans), которые можно настроить с помощью средства управляемых компонентов, описанного в разделе Настройка компонентов. В этом разделе представлены Основные понятия о создании, настройке и использовании компонентов поддержки в приложении.

http://docs.oracle.com/javaee/6/tutorial/doc/bnaqm.html не упоминает о "поддержке bean".


Я бы сказал, что бэк-боб-это Боб, используемый строго для целей пользовательского интерфейса, то есть, на который ссылаются в файлах jsp. В конце концов, все компоненты, управляемые контейнером JSF, являются управляемыми компонентами, однако существуют различные контексты, в которых они могут использоваться. Подробнее см. принятый ответ здесь:JSF: ManagedBean, хорошее место для работы с бизнес-логикой?


Управляемые Бобы управляются (создаются и уничтожаются) контейнером.

Бэк Фасоли - это управляемые бобы, которые отображаются как модели данных.


Backing Bean-это своего рода управляемый Боб. Управляемого Bean-объекта (т. е. экземпляра класса ), созданные контейнер (вот почему это называется управляемых) и, конечно, что объект имеет класс и если вам это нравится, вы можете создать столько экземпляров этого класса, неважно какая аннотация у них с м = новый MyManagedBean(), просто это будет не очень удалось-в зернах или по крайней мере не управляемый контейнером, но под вас :)

и backing bean-это своего рода управляемый Боб (как сказал Сантош: соглашение), которое обычно использует JSF requestScope (но в некоторых фреймворках, таких как ADF, есть даже назначенная область только для резервных бобов, называемых backingBeanScope - вы бы никогда не догадались).

и да... Аромат управляемых бобов jsf, который можно было бы назвать BackingBeans, используется для связывания UIComponents и записи ActionListeners, в то время как, скажем, аромат "модельных бобов" будет входить в область сеанса, например, и удерживать ваши данные


Я взял очень хороший (дорогой) курс на JSF. То, что я узнал там, как раз о том, что объясняется в http://www.avromroyfaderman.com/2008/07/from-backing-bean-to-managed-bean/.

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


по этой ссылке управляемые JSF бобы

Управляемый Bean-Компонент :

управляемый компонент-это обычный класс Java Bean, зарегистрированный в JSF. Другими словами, управляемые компоненты - это Java-компонент, управляемый JSF framework.

по этой ссылке создание и использование резервного компонента для веб-страницы :

Базовый Компонент :

в JSF вспомогательные бобы JavaBeans используется в основном для предоставления логики пользовательского интерфейса и управления данными между веб-уровнем и бизнес-уровнем приложения (аналогично объекту передачи данных). Обычно у вас есть один резервный компонент на страницу JSF. Компонент поддержки содержит логику и свойства компонентов пользовательского интерфейса, используемых на странице.

NB:

для резервного компонента, который будет доступен при запуске приложения, вы зарегистрируйте его как управляемый компонент с именем и объем


Управляемый Bean-Компонент:

управляемый компонент-это резервный компонент, зарегистрированный в JSF (в faces-config.xml) или с помощью аннотаций. Управляемый компонент автоматически создается (и при необходимости инициализируется) JSF, когда это необходимо.

Если вы используете управляемый компонент в своем приложении, вы должны использовать следующий синтаксис на странице JSF для установки или получения значений bean

<h:inputText value="#{user.name}"/>

Базовый Компонент:

боб, который содержит некоторые или все компонентные объекты веб-формы. Такой компонент называется вспомогательным компонентом для веб-формы.

когда вы используете поддерживающий компонент, вам нужно подключить компоненты на форма для тех, кто на бобе. Для этой цели используется атрибут binding

пример:

<h:inputText binding="#{myForm.myComponent}" .../>

наблюдайте, как мы получаем или устанавливаем значения для поддержки bean.

резервные компоненты должны быть определены в области запроса, существовать в отношениях "один к одному" с определенной страницей и удерживайте все страницы конкретного кода обработки событий

надеюсь, что это полезно для кого-то.