Bonjour,
Voici mon contexte d'application :
Application J2EE sous Websphère avec :
- Struts pour la présentation
- Spring / Hibernate pour le métier
- Découpage en couche : Business Service et DAO
L'application tourne dans un contexte multi-utilisateurs. De ce fait, je souhaite avoir un contexte unique persistant pour chaque utilisateur contenant les informations propres à chaque utilisateur.
Du côté présentation, pas de problème. Je mets mon contexte en session :
Le problème se pose du côté métier. Je n'arrive pas à avoir d'objet unique accessible partout dans le métier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part request.getSession().setAttribute( "Contexte", contexte );
Mon premier essai consistait à stocker mon contexte dans une map multi-thread avec le Thread concerné comme clé :
Problème : Avec Hibernate plusieurs Thread peuvent être exécutés pour une transaction... Je ne peux donc pas récupéré mon contexte dans certains cas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part maMap.get( Thread.currentThread() );
Mon 2è essai s'orientait sur un singleton avec variable statique... Problème : Le singleton est unique pour tous les utilisateurs !
Bref, je suis perdu ! Je sais qu'il doit y avoir un moyen de faire ça sans avoir à passer mon contexte en paramètre de toutes mes méthodes métier mais je ne sais pas comment !!
Peut-être qu'avec Spring, il y aurait un moyen ?
Merci d'avance à tous pour votre aide...
Partager