Разница между управляемым бобом и резервным бобом - PullRequest
60 голосов
/ 17 января 2011

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

Ответы [ 11 ]

64 голосов
/ 17 января 2011

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

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

На самом деле я никогда не использовал термин «поддерживающий боб», потому что я не нашел в этом смысла. Так что вам лучше использовать только «управляемый бин». Обратите внимание, что в JSF 2.0 (и в CDI) у вас есть @ManagedBean, поэтому ваш компонент является управляемым компонентом.

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

В спецификации JSF 2.0 термин «поддерживающий компонент» упоминается всего несколько раз, без какого-либо определения. В дополнение к этому в нем упоминается «класс поддерживающего компонента», что может означать, что «компонент поддерживаемого компонента!

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

16 голосов
/ 09 мая 2012

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

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

Что такое Backing Bean?

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

Что такоеразличия между Backing Bean и Managed Bean?

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

MB : управляемый компонент; BB : базовый компонент

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

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

Преимущество управляемогоbean-компоненты - это то, что инфраструктура JSF будет автоматически создавать эти bean-компоненты, при желании инициализировать их параметрами, указанными вами в Face-config.xml.

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

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

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

10 голосов
/ 17 января 2011

Поддерживающий компонент - это любой компонент, связанный с пользовательским интерфейсом JSF. в то время как управляемый боб - это любой боб

8 голосов
/ 02 декабря 2015

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

Вы, как разработчик, делаете:

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

JSF, как это делает фреймворк управления бобами:

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

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

CDI @Named и Spring @Component делают по сути то же самое, что и JSF @ManagedBean.

Чтобы узнать большео том, как структуры управления компонентами, такие как JSF, CDI и Spring, находят и создают свои управляемые компоненты, следует подробно изучить следующее средство устранения неполадок: Определение и решение javax.el.PropertyNotFoundException: Target Unreachable .

См. Также:

4 голосов
/ 04 июня 2013

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 не упоминает «компонент поддержки».

2 голосов
/ 12 февраля 2016

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

Backing Beans - это управляемые bean-компоненты, которые возвращаются в качестве моделей данных.

1 голос
/ 11 октября 2013

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

0 голосов
/ 06 февраля 2016

Управляемый компонент:

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

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

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

Фасоль:

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

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

Пример:

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

Обратите внимание на то, как мы получаем или устанавливаем значения для компонента Backing.

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

Надеюсь, это кому-нибудь пригодится.

0 голосов
/ 01 декабря 2015

По этой ссылке JSF - Управляемые компоненты

Управляемый компонент:

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

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

Backing Bean:

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

NB:

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

0 голосов
/ 07 февраля 2013

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

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

...