2012-07-06 3 views
1

Struts2, Spring, Hibernate로 응용 프로그램을 빌드 중입니다. Struts 액션은 Spring에 의해 관리되고 그 범위는 "request"이며 대화를 수행하기위한 일부 상태의 세션 빈이 있습니다. Struts2 세션 맵을 사용하기 전에 "containsKey, put, get, cast"악몽이 사라 지길 원했습니다. 그래서 Spring에서 관리하는 세션 범위 Bean을 사용하기 시작했습니다.스프링 세션 범위 bean, thread-safety

질문 :이 bean은 스레드로부터 안전하지 않습니까? 브라우저 당 사용자 윈도우가 여러 개인 경우 세션 빈에서 많은 스레드를 얻을 수 있습니까? 어떻게 처리할까요? 스레드 안전 세션 빈을 빌드 하시겠습니까?

+0

여전히 여러 브라우저에서 멀티 스레딩 문제가 발생하더라도이를 동기화하여 피할 수 있습니다. –

답변

4

예. 요청보다 큰 범위에 저장된 모든 것은 잠재적으로 다중 스레드에 의해 액세스되며 스레드로부터 안전해야합니다.

1

Struts2에서 "containsKey, put, get, cast"악몽을 피하면서 "브라우저 당 사용자 다중 창"이 걱정된다면 struts2-conversation plugin을 볼 수도 있습니다. 플러그인은 스레드 안전 문제를 관리합니다.