Je lis un livre sur Java Ee 6 et j'ai rencontré les parties suivantes: P>
"apatride: le bean de session ne contient aucun état de conversation entre les méthodes et tout
L'instance peut être utilisée pour tout client. " em> p>
"Stateful: le bean de session contient un état de conversation, qui doit être conservé
à travers des méthodes d'un seul utilisateur. " em> p>
Que signifie "état conversationnel"? A quelqu'un de réel exemple de l'exemple pour l'expliquer? P>
Merci d'avance. P>
ii. strong> pourquoi cette classification des haricots si importante? Il ne dit rien avec une explication correcte non plus ou pour débutant (à première vue)
Donc, grâce à vous, j'ai eu la différence logique, mais pourquoi ce type de comportement si important? P>
3 Réponses :
à l'état le plus basique "," état de conversationnel "désigne la valeur des champs d'instance. p>
Pour les haricots de session apatrides, le conteneur ne garantit pas que les invocations de méthodes ultérieures utiliseront la même instance EJB (à partir du pool), vous ne pouvez donc pas supposer que les valeurs que vous avez placées lorsque vous appelez une méthode de haricot, sera toujours là quand Vous appelez à nouveau la méthode (ou une autre méthode du haricot). P>
Pour les haricots de session standard, le conteneur garantit que les appels ultérieurs utiliseront la même instance EJB, vous pouvez donc conserver des valeurs de champ d'instance. P>
Pour un exemple d'un exemple, dites que vous avez un haricot qui a une méthode d'incrément () et de récupération (). L'incrément augmente la valeur stockée et récupérer la valeur stockée actuelle. P>
Pour un haricot de session apatride, si vous appelez l'incrément () Méthode 5 fois, il n'est pas garanti que lorsque vous effectuez une récupération (), vous obtiendrez un 5. Il appartient au conteneur qui l'ejb ' ll attribuer à votre appel. Donc, si vous êtes attribué une nouvelle instance EJB, vous obtiendrez un zéro. Il est également possible que le conteneur n'ait pas nettoyé votre instance EJB, il pourrait donc être possible d'obtenir un 5 - mais il n'est pas garanti. P>
Pour un haricot de session standard, si vous appelez la méthode d'incrément 5 fois, lorsque vous récupérez la valeur, vous obtenez un 5. Le conteneur garantit que l'EJB utilisée la première fois que vous avez appelé sera utilisé pour tous les éléments suivants. appels. P>
Merci pour votre temps et vos efforts, si vous avez le temps, pouvez-vous expliquer mon deuxième II. question ?
Un exemple réel exemple d'un état de conversation serait un panier d'achat. Un utilisateur peut ajouter plusieurs éléments au panier d'achat d'un par un, puis appelez la caisse. Tous les temps ajoutés seraient là
supposons que le chariot soit sotculeux, c'est-à-dire qu'il conserve l'état de conversation. P> si le panier est apatride, chaque appel sera indépendant. des précédents et à la caisse, cela ne peut avoir rien. P> pour votre deuxième point
La distinction est nécessaire en raison de différences de comportement des deux haricots. Le maintien de l'état nécessite des ressources, des haricots étatiques ne sont pas aussi évolutifs que des haricots apurés. p> p>
Merci pour votre temps et vos efforts, si vous avez le temps, pouvez-vous expliquer mon deuxième II. question ?
En ce qui concerne la deuxième partie de la question, du tutoriel Java EE 6, vous pouvez lire les éléments suivants: p>
lorsque les haricots de session de conducteur fort> p> Les haricots satellites d'état indiquent que l'une des conditions suivantes est vraie. p>
- L'état de la bean représente l'interaction entre le haricot et un client spécifique. li>
- Le haricot doit contenir des informations sur le client à travers les invocations de méthodes. Li>
- Le haricot est médiatisé entre le client et les autres composants de l'application, présentant une vue simplifiée sur le client. Li>
- Dans les coulisses, le haricot gère le flux de travail de plusieurs haricots d'entreprise. Li> ul>
Pour améliorer les performances, vous pouvez choisir un haricot de session apatride s'il possède l'un de ces traits. p>
- L'état de la bean n'a pas de données pour un client spécifique. Li>
- Dans une seule méthode Invocation, le haricot effectue une tâche générique pour tous les clients. Par exemple, vous pouvez utiliser un haricot de session apatride pour envoyer un email qui confirme une commande en ligne. LI>
- Le haricon implémente un service Web. Li> ul> blockQuote>