Nous savons tous que dans la couche Web, il est possible qu'une seule instance d'une servlet donnée existe et qu'elle traite plusieurs requêtes. Cela peut entraîner des problèmes de thread dans les variables d'instance.Est-il possible d'injecter un EJB dans une servlet en tant que variable d'instance?
Ma question est, est-il sécuritaire d'injecter un EJB en utilisant l'annotation @EJB dans une servlet comme une variable d'instance?
Mon instinct initial serait non, en supposant que la même instance de l'EJB traiterait plusieurs demandes en même temps. Il semblerait que ce serait aussi l'instinct d'un certain nombre d'autres programmeurs: Don't inject to servlets
Cependant, ai-je sauté à la mauvaise conclusion. De toute évidence, ce qui est injecté dans le servlet est un proxy, sous le capot, le conteneur traite-t-il réellement chaque requête avec une instance différente et maintient la sécurité du thread? Comme ce forum le suggère: Do inject to servlets
Il semble y avoir beaucoup d'opinions contradictoires. QUI EST CORRECT???
Cette réponse est correcte dans la mesure où elle va, mais elle ne répond pas aux préoccupations de sécurité de l'OP. Je crois que la réponse de inferreddesign ci-dessous devrait être la bonne. –
Je suppose qu'un EJB injecté avec @Inject (CDI, JEE 6) sera tout aussi sûr, n'est-ce pas? – marcus