Pregunta

Estoy leyendo sobre JSF2 y Managed Beans.Tengo una pregunta relacionada con la pasivación.

Recientemente solicité diferentes casos de uso de @Stateful EJB, @SessionScoped y @ManagedBean aquí:

Bean administrado con ámbito de sesión vs ejb con estado.

Ahora, los EJB con estado son elegibles para pasivación y activación, lo que les permite pasivarse temporalmente en almacenamiento persistente para disminuir el uso de memoria cuando están inactivos. No he visto esta característica disponible para los beans administrados.Entonces me hizo pensar que tal vez debería optar por @RequestScoped Beans administrados y preferidos @Stateful En su lugar, EJB para carritos de compras, etc.Usando @Sessionscoped Beans administrados solo para almacenar información mínima del usuario.

¿Es esto correcto?¿Existen algunas pautas para esto?

¿Fue útil?

Solución

Un bean administrado con ámbito de solicitud no funcionaría aquí.Para acceder a una instancia particular de bean de sesión con estado, necesita su código auxiliar.

Si utilizara beans administrados con ámbito de solicitud, no habría lugar para almacenar este código auxiliar y obtendría una nueva instancia con cada solicitud.Esto supera por completo la razón para utilizar beans de sesión con estado en primer lugar.

Sin embargo, podría utilizar un bean administrado JSF con ámbito de vista (si la acción tiene lugar en una sola página) o un bean CDI con ámbito de conversación (si la acción tiene lugar en varias páginas).Especialmente con este último, puede vincular el alcance de su conversación con la vida útil del bean de sesión con estado.

Tenga en cuenta que todo esto requiere al menos un conocimiento intermedio de Java EE.Si no tiene cuidado con la pasivación de beans de sesión con estado (p. ej.nunca llame a un método anotado @Remove) gradualmente consumirá el espacio del disco duro de su servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top