Pourquoi ne pas le printemps fournir un fil de la portée de la mise en œuvre?
Pourquoi ne pas le Printemps fournir un fil de la portée de la mise en œuvre?
Quelqu'un a utilisé thread étendue de fèves au Printemps dans un contexte d'application web?
Il devrait y avoir une norme, une description claire de la façon de le faire!
(SpringByExample a une solution, je ne l'ai pas tester, mais il n'est pas ordinaire).
OriginalL'auteur Viorel Vesa | 2014-02-04
Vous devez vous connecter pour publier un commentaire.
Printemps n'fournir un fil portée, mais il n'est pas enregistré par défaut.
L'existant bean étendues sont définies dans la documentation, ici.
La documentation fait alors une remarque
Noter que, de manière similaire à le prototype de la portée, le fil portée
Ce fil à la portée de la mise en œuvre utilise un
ThreadLocal
pour stocker des haricots.Vous ne pouvez pas détecter un
Thread
fin/mourir en Java, de sorte que le Printemps conteneur IOC ne peuvent pas explicitement savoir quand retirer les grains de laThreadLocal
et invoquer de fin de cycle de vie des méthodes. Que la responsabilité retombe sur le développeur.Être prudent lorsque vous utilisez cette étendue. Par exemple, dans une mise en pool de threads contexte, un bean ont déjà été créées et stockées dans l'une des piscines' réutilisés threads. Selon votre cas d'utilisation, qui pourrait être le comportement incorrect.
OriginalL'auteur Sotirios Delimanolis
En fait, il ne fournir un fil portée, depuis le Printemps 3.0. Vous pourriez avoir besoin pour vous inscrire vous-même au lieu de cela, il est utilisé en dehors-de-le-boîte.
Voir https://jira.springsource.org/browse/SPR-2581
Je n'ai pas dit que c'était une bonne idée, mais il y en a un fourni.
🙂 oui, merci pour la réponse.
Pour un tomcat soft qui est tué quand une nouvelle version à être déployé, et les fèves vont alors être faite lors de l'application est créé (en supposant que les pools de threads sont seulement celles faites par tomcat pour le service web demandes), puis les haricots serait comme service de haricots avec la durée de vie == app temps de la vie == jusqu'à tomcat vie? donc, le travail bien pas des singletons ou de web à la portée de session, mais encore moins d'entrer en conflit si les méthodes sont thread-safe intérieur d'eux-mêmes
OriginalL'auteur M. Deinum
Dans un contexte d'application web, vous pouvez utiliser la demande de la portée qui est à peu près le même que l'utilisation d'un fil portée. A la portée de la requête, la fève est créé pour chaque demande reçue par le serveur et jetée que lorsque la requête est terminée.
Considérer que les fils peuvent être mis en commun sur les serveurs, et c'est probablement la raison pour laquelle il n'y a pas un fil portée sur le Printemps
Prendre un coup d'oeil à la demande de la portée: http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html
Vous m'avez demandé l'aide de fil d'étendue de haricots dans un contexte d'application Web, et c'est exactement ce que j'ai répondu.
Ainsi, le fil n'est pas tout à fait la même demande de la portée, ils sont "à peu près la même". Peut-être que je n'ai pas été assez clair dans la question. Merci pour la réponse en tout cas!
Rappelez-vous que les fils peuvent être mis en commun sur les serveurs, et c'est probablement la raison pour laquelle il n'y a pas un fil portée sur le Printemps.
Oui, vous avez bien raison! Cela pourrait être une raison, mais un nettoyage peut être fait sur le thread de l'état, afin d'atteindre le fil de la portée de comportement.
OriginalL'auteur Andres