Frijoles sin estado vs con estado

Todavía no entiendo claramente la diferencia de beans sin estado y con estado en EJB. ¿En qué situación debo usar sin estado y en qué con estado?

preguntado el 04 de julio de 12 a las 07:07

2 Respuestas

Te daré un buen ejemplo:

Di que hay n no. de usuarios (digamos clientes) Ahora hay un bean que solo toma el nombre del país como entrada y proporciona la moneda de ese país. En este caso se puede usar un frijol para n no. de usuarios (clientes). No tiene ningún sentido crear un bean individual para cada solicitud del cliente. Por lo tanto, podría haber un bean que se pueda servir a múltiples clientes y dicho bean se conoce como bean sin estado. Después de que un bean sin estado sirve a un cliente, no se destruye, sino que va al grupo de frijoles, por lo que puede servir a otros clientes.

Ahora tomemos otro ejemplo,

En un carrito de compras, hay un bean que puede contener una lista de artículos. Entonces, digamos que cuando agrega los artículos mientras compra en línea, los artículos se mantendrán en un solo bean que se crea exclusivamente para usted. Su tiempo de vida será hasta que termines las compras. Entonces, si empiezo a comprar en línea, se creará otro frijol para mí. Entonces, la razón por la que se dice con estado es porque su estado permanece activo durante toda la sesión, es decir, desde que comienza a agregar el primer elemento hasta que agrega n no. de artículos en el carrito y realizar el pedido final.

Frijol sin estado: Un bean puede servir a varios clientes (cualquier cambio realizado por un cliente se reflejaría en otro cliente). Una vez que un bean sin estado no sirve, no se destruye, sino que va al grupo de frijoles, por lo que en el futuro puede servir a otros clientes.

Frijol con estado: Un frijol solo para un cliente. (Cualquier cambio realizado por un cliente será solo para ese cliente ya que no hay uso de este bean para otros clientes). Entonces, una vez que finaliza el servicio, se destruye.

respondido 12 nov., 13:12

Si necesita mantener un estado del cliente entre las invocaciones, debe usar ¿adivina qué? Bien, frijoles con estado. Si no le importa el estado, el frijol sin estado es la opción correcta.

Respondido el 21 de Septiembre de 13 a las 11:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.