@PersistenceContext EntityManager bezpieczeństwo wątków w Spring i Java EE

EntityManager jestnie jest bezpieczny dla wątków zgodnie z definicją. Specyfikacje serwletów mówią, że w środowisku nie rozproszonym i bez implementacjiSingleThreadModel, jesttylko jedna instancja serwletu na definicję.

Dlatego w Java EE po wstrzyknięciuEntityManager przez@PersistenceContext w pole serwletu - to nie jest bezpieczne dla wątków:

<code>public class MyServlet extends HttpServlet {

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

Czy to prawda, że ​​nawet jeśli domyślnym zakresem Spring bean jest singleton, toEntityManager jest bezpieczny dla wątków, jak używa SpringThreadLocal związać swoją transakcję iEntityManager do tego?

Czy powyższy przykład serwletów jest nadal ważny na wiosnę? Czy nadal nie jest bezpieczny dla wątków?

Czy toThreadLocal podejście działa tylko dla fasoli zarządzanej przez Spring, a zwykły serwlet nie jest jednym z nich?

O ile dobrze pamiętam, do obowiązków kontenera należy wstrzyknięcieEntityManager. W implementacji Glassfish Java EE to serwer aplikacji odkrył@PersistenceContext jako punkt wtrysku.
Jak to wygląda na wiosnę? Czy Spring Framework jest odpowiedzialny za odkrywanie tych adnotacji lub za ich odpowiedzialność za implementator JPA?

questionAnswers(1)

yourAnswerToTheQuestion