2011-05-15 14 views
7

Sé que Application-Scope persiste en varios usuarios, por lo que es obvio que debemos asegurarnos de que todos los ManageSBoeds ManagedBeans sean seguros para la ejecución de subprocesos.¿Por qué deberíamos hacer que un hilo ManageSBean de SessionScoped sea seguro en JSF?

También entiendo que no necesitamos preocuparnos por la seguridad de los hilos de un ManagedBean RequestScoped. Esto se debe a que solo dura una solicitud HTTP y se crea una nueva instancia para cada solicitud si se hace referencia a ella.

Pero no estoy muy seguro de por qué deberíamos preocuparnos por la seguridad de los hilos de una SessionScoped ManangedBean. A pesar de que persiste en múltiples solicitudes, cada usuario individual obtiene su propia instancia de la misma, ¿verdad?

Entonces, ¿por qué tenemos que preocuparnos por la seguridad de los subprocesos en el caso de SessionScoped ManagedBeand, y eso también se aplica a ViewScoped ManagedBean? ViewScope persiste en 2 solicitudes consecutivas para la misma vista, ¿verdad?

Respuesta

8

Si ya te preocupas por la seguridad de los hilos en un determinado ámbito, entonces los datos probablemente pertenecen a un ámbito más restringido (es decir, hay un defecto en el diseño de alto nivel). Si los datos se han puesto en el ámbito correcto, entonces no hay ninguna razón para preocuparse por la seguridad de los hilos. Supongo que sus beans están diseñados de la manera correcta que no están haciendo ninguna lógica comercial en el getters.

Utilice el alcance de la aplicación para datos/constantes de aplicación amplia, como listas desplegables que son las mismas para todos. Utilice el alcance de la sesión para datos específicos del cliente, como el usuario que ha iniciado sesión y las preferencias del usuario (idioma, etc.). Utilice el alcance de la vista para obtener vistas dinámicas enriquecidas con Ajax (validación basada en Ajax, representación, etc.). Use el alcance de la solicitud para formularios/presentaciones simples y no ajax.

+0

Estaba leyendo el tutorial JavaEE6 de Oracle, y allí dice que cuando se utilizan los beans administrados de ApplicationScoped y SessionScoped, se deben tomar precauciones para la seguridad del hilo, y me preguntaba en qué sentido? Pero, está claro ahora. Buena explicación. Gracias. –

Cuestiones relacionadas