J'ai une application Web à l'aide du printemps et mise en veille prolongée et des entretoises (il fonctionne sur Tomcat)Threads au printemps
La séquence d'appel est quelque chose comme ça ...
l'action Struts appelle haricot de service ressort qui, à son tour appelle le bean Spring DAO. L'implémentation DAO est une implémentation Hibernate.
La question est Est-ce que tous mes haricots de printemps courraient dans le même fil? Puis-je stocker quelque chose dans le ThreadLocal et l'obtenir dans un autre haricot?
Je suis assez sûr que cela ne fonctionnerait pas dans le bean session sans état. Le conteneur EJB peut (ou va) générer un nouveau thread pour chaque appel au bean session
Le conteneur à ressort fera-t-il de même? c'est-à-dire exécuter tous les haricots dans le même fil?
Quand j'ai essayé un test JUnit -. Je suis le même identifiant via Thread.currentThread() getId() dans le cas de test et les deux HARICOTS qui me conduit à croire qu'il n'y avait qu'un seul fil dans l'action
Ou le comportement est-il imprévisible? Ou changera-t-il lors de l'exécution sur le serveur Tomcat?
Clarification Je ne souhaite pas échanger de données entre deux threads. Je veux mettre des données dans le ThreadLocal et être capable de le récupérer de tous les beans de la pile d'appels. Cela ne fonctionnera que si tous les beans sont dans le même thread
Pourriez-vous poster des échantillons de code s'il vous plaît? Je ne suis pas sûr de ce que vous essayez d'atteindre. –