[SPRING] @PersistenceContext Spring 및 Java EE의 EntityManager 스레드 안전성
SPRING@PersistenceContext Spring 및 Java EE의 EntityManager 스레드 안전성
EntityManager는 정의에 의해 스레드로부터 안전하지 않습니다. 서블릿 스펙은 비 분산 환경에서 SingleThreadModel을 구현하지 않고 정의 당 서블릿 인스턴스가 하나만 있다고합니다.
따라서 Java EE에서 @PersistenceContext를 통해 EntityManager를 Servlet의 필드에 삽입 할 때 스레드 안전성이 보장되지 않습니다.
public class MyServlet extends HttpServlet {
// Not thread-safe, should be using EMF instead.
@PersistenceContext
private EntityManager em;
}
해결법
-
==============================
1.질문 2, 3, 4 - Spring Bean이 아닌 클래스에는 Spring이주의를 기울이지 않습니다. 따라서 Spring은 MyServlet 클래스에주의를 기울이지 않습니다. 따라서
질문 2, 3, 4 - Spring Bean이 아닌 클래스에는 Spring이주의를 기울이지 않습니다. 따라서 Spring은 MyServlet 클래스에주의를 기울이지 않습니다. 따라서
질문 1). 이 방법으로 작동하므로 Spring Injected Entity Manager의 사용법은 효과적인 스레드 저장입니다.
from https://stackoverflow.com/questions/10380539/persistencecontext-entitymanager-thread-safety-in-spring-and-java-ee by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 autowire 및 프로토 타입 범위 (0) | 2019.03.26 |
---|---|
[SPRING] 왜 Spring은 @DependsOn 주석을 무시 했습니까? (0) | 2019.03.26 |
[SPRING] 스프링 데이터 JPA CRUDRepository에 캐시 기능을 추가하는 방법 (0) | 2019.03.26 |
[SPRING] 봄 @Async 무시 (0) | 2019.03.26 |
[SPRING] 스프링 빈에서는 트랜잭션을 사용할 수있는 시스템 종료 방법을 사용할 수 있습니까? (0) | 2019.03.26 |