Diferencia entre el frijol manejado y el frijol de respaldo


Me encontré con los términos "frijol administrado" y "frijol de respaldo" en varios foros. Mucha gente piensa que ambos son iguales. Pero, parece haber una ligera diferencia. ¿Puede alguien ayudarme a entender la diferencia exacta entre estos dos términos?

Author: BalusC, 2011-01-17

11 answers

Cambiando mi respuesta inicial - no hay diferencia significativa entre los dos. El tutorial dice que los frijoles de respaldo se declaran más tarde como frijoles administrados. Entonces, para resumir:

  • un frijol de respaldo es la clase fuera de contexto
  • un frijol administrado es el frijol de respaldo cuando se declara que se utiliza con la instalación de frijol administrado de JSF.

En realidad nunca he usado el término "frijol de respaldo", porque no lo encontré útil. Así que podrías estar mejor usando solo "haba manejada". Tenga en cuenta que en JSF 2.0 (y en CDI) tiene @ManagedBean, por lo que su frijol es un frijol administrado.

BalusC sugirió que "backing bean" es la definición, y "managed bean" es la instancia. Si bien esta podría haber sido la idea original de los creadores de JSF, no creo que valga la pena apoyarla. CDI y spring, por ejemplo, no tienen un término diferente para "definición de frijol" y "instancia de frijol".

La especificación JSF 2.0 menciona el término "backing bean" solo unas pocas veces, con no hay definición alguna. Además de eso, menciona "clase de frijol de respaldo", lo que podría significar que" frijol de respaldo"!= "backing bean class", que trae más confusión.

Así que para concluir, para mí ambos son intercambiables, y me limitaría a usar solo "managed bean"

 62
Author: Bozho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-21 07:59:43

¿Qué es Managed Bean?

Los objetos JavaBean gestionados por una implementación JSF se llaman managed beans. Un frijol administrado describe cómo se crea y administra un frijol. No tiene nada que ver con las funcionalidades del bean.

¿Qué es Backing Bean?

Los frijoles de respaldo son componentes JavaBeans asociados con componentes de interfaz de usuario utilizados en una página. Respaldo: bean management separa la definición de los objetos componentes de la interfaz de usuario de los objetos que realizan procesamiento y retención de datos específicos de la aplicación. El bean de respaldo define las propiedades y las lógicas de manejo asociadas con los componentes de la interfaz de usuario utilizados en la página. Cada propiedad backing-bean está vinculada a una instancia de componente o a su valor. Backing bean también define un conjunto de métodos que realizan funciones para el componente, como validar los datos del componente, manejar los eventos que el componente dispara y realizar el procesamiento asociado con la navegación cuando el componente activar.

¿Cuáles son las diferencias entre un Frijol de Respaldo y un Frijol Manejado?

Los Frijoles de respaldo son simplemente una convención, un subtipo de Frijoles Administrados por JSF que tienen un propósito muy particular. No hay nada especial en un Frijol de respaldo que lo haga diferente de cualquier otro frijol administrado aparte de su uso.

MB : Frijol manejado; BB : Frijol de respaldo

1) BB: Un frijol de respaldo es cualquier frijol que es referenciado por un forma.

MB: Un frijol administrado es un frijol de respaldo que ha sido registrado con JSF (en faces-config.xml) y se crea automáticamente (y opcionalmente inicializado) por JSF cuando es necesario.

La ventaja de managed beans es que el framework JSF creará automáticamente estos beans, opcionalmente inicializándolos con parámetros que especifique en faces-config.XML.

2) BB: Los frijoles de soporte deben definirse solo en la solicitud ámbito de aplicación

MB : Los beans administrados creados por JSF se pueden almacenar dentro de los ámbitos de solicitud, sesión o aplicación .

Los frijoles de respaldo deben definirse en el ámbito de la solicitud, existir en una relación uno a uno con una página en particular y contener todo el código de manejo de eventos específicos de la página. En un escenario del mundo real, varias páginas pueden necesitar compartir el mismo grano de respaldo detrás de las escenas. Un bean de respaldo no solo contiene datos de vista, sino también comportamiento relacionado con esos datos.

 15
Author: Santosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-10 04:48:02

El frijol de respaldo es cualquier frijol que está ligado con la interfaz de usuario de JSF. mientras que el frijol administrado es cualquier frijol

 10
Author: Jigar Joshi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-30 17:02:29

En pocas palabras,

Usted como desarrollador lo hace:

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

JSF como marco de gestión de frijol hace bajo las cubiertas:

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

Por lo tanto, el frijol de respaldo es la clase concreta que es desarrollada por usted y generalmente vinculada a la vista, y el frijol administrado es la instancia concreta, que está bajo las cubiertas creadas y puestas en el alcance deseado por el marco de gestión de frijol bajo demanda, y disponible por #{managedBean} en EL. Nunca necesitas crearlo y ponerlo en el ámbito tú mismo. Si lo hicieras entonces no hay forma de un frijol administrado por framework.

CDI @Named y Spring @Component hacen esencialmente lo mismo que JSF @ManagedBean.

Para obtener más información sobre cómo los marcos de administración de frijoles como JSF, CDI y Spring encuentran y crean sus frijoles administrados, el siguiente solucionador de problemas debe proporcionar información detallada: Identificar y resolver javax.el.PropertyNotFoundException: Target Unreachable .

Véase también:

 8
Author: BalusC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:23

Http://docs.oracle.com/javaee/5/tutorial/doc/bnaqm.html dice:

Una aplicación típica de Caras de JavaServer incluye uno o más frijoles de respaldo, cada uno de los cuales es un frijol administrado de caras de JavaServer que está asociado con los componentes de la interfaz de usuario utilizados en una página en particular. Los beans administrados son componentes de JavaBeans (consulte Componentes de JavaBeans) que puede configurar mediante la instalación de bean administrado, que se describe en Configuración de Beans. Esta sección presenta los conceptos básicos sobre creación, configuración y uso de frijoles de respaldo en una aplicación.

Http://docs.oracle.com/javaee/6/tutorial/doc/bnaqm.html no hace mención de "frijol de respaldo".

 4
Author: Philip Durbin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-04 14:54:30

Yo diría que el frijol de respaldo es un frijol usado estrictamente para propósitos de interfaz de usuario, es decir, referenciado en los archivos jsp. Después de todo, todos los frijoles administrados por JSF container son frijoles administrados, sin embargo, hay diferentes contextos en los que podrían usarse. Para obtener más información, consulte respuesta aceptada aquí: JSF: ManagedBean, ¿Es un buen lugar para lidiar con la lógica de negocios?

 1
Author: al.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:08

Los frijoles manejados se gestionan (instanciados y destruidos) por contenedor.

Los frijoles de respaldo son frijoles administrados que retroceden las vistas como modelos de datos.

 1
Author: abbas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-23 17:33:58

El Frijol de respaldo es un tipo de Frijol Administrado. Managed Bean es un Objeto (es decir, instancia de una Clase), creado por un contenedor (por eso se llama managed) y, por supuesto, ese Objeto tiene una Clase y si lo desea, puede crear tantas instancias de esa clase sin importar qué anotación tengan con m = new MyManagedBean(), simplemente será un Bean No Tan Administrado o al menos no administrado por un contenedor sino administrado por usted:)

Y el frijol de respaldo es un tipo de frijol administrado (como Santosh lo puso: una convención) que usualmente usa el requestScope de JSF (pero en algunos frameworks como ADF hay incluso un ámbito designado solo para respaldar beans llamado backingBeanScope - nunca lo habrías adivinado).

Y sí... El sabor de los frijoles administrados de jsf que uno llamaría BackingBeans se usa para unir componentes de U y escribir ActionListeners, mientras que digamos que el sabor de "frijoles modelo" iría en el ámbito de la sesión, por ejemplo, y guardaría sus datos

 -1
Author: clegg7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-20 12:16:40

Tomé un curso muy bueno (caro) en JSF. Lo que aprendí allí es solo acerca de lo que se explica en http://www.avromroyfaderman.com/2008/07/from-backing-bean-to-managed-bean/.

Tal vez esta diferencia no sea la diferencia teórica o la etimología de los términos, pero sin duda es una forma muy práctica de configurar su arquitectura, especialmente si usted es parte de un gran proyecto con múltiples desarrolladores y/o necesita mantener una gran cantidad de código durante mucho tiempo. Básicamente, la idea es que pongas tu Lógica de negocio de UI en Frijoles Administrados. Los frijoles de respaldo son escasos y solo apoyan la página en sí.

 -1
Author: Dovev Hefetz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-06 21:33:04

Desde este enlace Frijoles administrados por JSF

Frijol manejado:

Managed Bean es una clase Java Bean regular registrada en JSF. En otras palabras, Managed Beans es un java bean administrado por JSF framework.

Desde este enlace Crear y Usar un Frijol de Respaldo para una Página Web :

Frijol de respaldo:

En JSF, los frijoles de respaldo son JavaBeans utilizados principalmente para proporcionar lógica de interfaz de usuario y para administrar datos entre nivel web y nivel de negocio de la aplicación (similar a un objeto de transferencia de datos). Normalmente tienes un frijol de respaldo por página de JSF. El bean de respaldo contiene la lógica y las propiedades de los componentes de interfaz de usuario utilizados en la página.

NB:

Para que un frijol de respaldo esté disponible cuando se inicie la aplicación, debe regístrelo como un frijol administrado con un nombre y alcance

 -1
Author: Mourad BENKDOUR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-01 21:02:30

Frijol manejado:

Un frijol administrado es un frijol de respaldo que ha sido registrado con JSF (en faces-config.xml) o usando Anotaciones. Managed Bean creado automáticamente (y opcionalmente inicializado) por JSF cuando es necesario.

Si usa Managed Bean en su aplicación, debe usar la siguiente sintaxis en la página JSF para establecer u obtener valores de bean

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

Frijol de respaldo:

Un bean que contiene algunos o todos los objetos componentes de un formulario web. Tales un frijol se llama frijol de respaldo para el formulario web.

Cuando se utiliza un frijol de respaldo, es necesario conectar los componentes en el formar a los de la haba. Se utiliza el atributo binding para este propósito

Ejemplo:

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

Observe cómo estamos obteniendo o estableciendo valores para Respaldar bean.

Los frijoles de respaldo deben definirse en el ámbito de la solicitud, existir en una relación uno a uno con una página en particular y contener todo el código de manejo de eventos específicos de la página

Esperanza es útil para alguien.

 -2
Author: Raj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-06 18:02:45