mvc - sesiones en jsf
Ayúdame a comprender el alcance de frijol administrado de JSF desde la vista de concurrencia (1)
Creo que su comprensión de la vida útil de cada uno de los ámbitos está bien.
Sin embargo, creo que su comprensión de cuándo aplicar la sincronización no es buena. Siempre que necesite sincronizar los métodos de un bean en un cierto alcance, esto generalmente es una indicación de que el alcance del bean es demasiado amplio para los datos que contiene. A continuación, debe colocar el bean en un ámbito más estrecho o mover los datos a otro bean en un ámbito más estrecho, de modo que la sincronización no sea necesaria.
Debe colocar los datos del ámbito de la solicitud (datos de presentación, datos de formularios sincrónicos, etc.) en el alcance de la solicitud. Debe poner datos de ámbito de vista (datos de formulario asíncrono, condiciones de atributo rendered
, valores "ocultos", etc.) en el ámbito de vista. Debe poner los datos del ámbito de la sesión (usuario registrado, preferencias del usuario, datos específicos del usuario, etc.) en el alcance de la sesión. Debe colocar los datos del ámbito de la aplicación (valores de la lista desplegable global, configuración, etc.) en el alcance de la aplicación.
¿Alguien puede ayudarme a comprender el alcance del frijol administrado JSF desde una perspectiva de concurrencia?
Mi entendimiento:
Una vez que tengo un bean con alcance en un ámbito de sesión eso significa: solo hay un usuario que puede acceder a este bean gestionado, por lo que no hay posibilidad de que se produzca la concurrencia.
Además, una vez que uso un bean en un ámbito de solicitud, este bean se creará una vez que se haya iniciado una solicitud y ese bean se eliminará una vez que se devuelva una respuesta. (cada cliente tiene una copia diferente de este bean)
Además, una vez que utilizo un bean en un ámbito ninguno, una vez que el usuario llame al bean se creará y luego de finalizar la llamada se eliminará el bean.
Pero una vez que tengo un bean en el ámbito de una aplicación, significa que el cliente múltiple puede acceder a este bean, por lo que si tengo datos críticos, debe estar protegido por la sincronización.
Todas sus entradas son muy apreciadas.