@PersistenceContext EntityManager segurança de thread no Spring e no Java EE

EntityManager énão é thread-safe por definição. Specs Servlets diz que em ambiente não distribuído e sem implementaçãoSingleThreadModel, Há simapenas uma instância de servlet por definição.

Portanto, no Java EE quando você injetarEntityManager através de@PersistenceContext no campo de Servlet - não é thread seguro:

<code>public class MyServlet extends HttpServlet {

    // Not thread-safe, should be using EMF instead.
    @PersistenceContext
    private EntityManager em;
}
</code>

É correto dizer que, embora o escopo padrão dos beans Spring seja singleton, oEntityManager é thread-safe como o Spring usaThreadLocal para vincular sua transação eEntityManager para isso?

O exemplo de Servlets acima ainda é válido no Spring? Ainda não é thread-safe?

OThreadLocal a abordagem funciona apenas para beans gerenciados pelo Spring e o servlet simples não é um desses?

Tanto quanto me lembro, é a responsabilidade do recipiente para injetar oEntityManager. Na implementação do Java EE Glassfish, foi o servidor de aplicativos que descobriu@PersistenceContext como ponto de injeção.
Como se parece na primavera? O Spring Framework é responsável por descobrir essas anotações ou é responsabilidade do implementador da JPA?

questionAnswers(1)

yourAnswerToTheQuestion