Question

D'après ma compréhension, les beans de session sans état sont utilisés pour coder la logique métier.Ils ne peuvent pas stocker de données dans leurs variables d'instance car leur instance est partagée par plusieurs requêtes.Ils semblent donc ressembler davantage à des cours Singleton.Cependant, la différence est que le contenu crée (ou réutilise à partir du pool) l'instance distincte de beans de session sans état pour chaque requête.

Après avoir cherché sur Google, j'ai pu trouver le raisonnement selon lequel la spécification Java EE dit qu'ils sont censés être à thread unique.Mais je n'arrive pas à comprendre la raison pour laquelle ils sont spécifiés comme étant SIMPLE FILETAGE?

Était-ce utile?

La solution

Les SLSB sont à thread unique en raison du contexte TX, le principal est associé à une instance de bean lorsqu'il est appelé.Ces beans sont regroupés et, à moins que la taille maximale du pool ne soit atteinte, ils sont traités dans des threads séparés (en fonction du fournisseur).

Si les SLSB avaient été conçus en toute sécurité, chaque appel aurait ressemblé à un servlet doGet/Post avec des informations de demande contenant le contexte Tx, les informations de contexte de sécurité, etc.Donc au moins le code semble propre (dépendant du développeur).

Autres conseils

La principale raison pour laquelle les beans session sans état sont à thread unique est de les rendre hautement évolutifs pour le conteneur.Le conteneur peut faire de nombreuses hypothèses simplificatrices sur l'environnement d'exécution.Une deuxième raison est de faciliter la vie du développeur car celui-ci n'a pas à se soucier d'une quelconque synchronisation ou ré-entrance dans sa logique métier car le bean ne sera jamais appelé dans un autre contexte de thread.

Je me souviens du raisonnement discuté dans les critiques de la spécification EJB 1.0 originale.Je regarderais la section objectifs du cahier des charges.Voir http://java.sun.com/products/ejb/docs.html pour la liste des spécifications.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top