[SPRING] 스프링 mvc 모든 콩을 선언 싱글 톤
SPRING스프링 mvc 모든 콩을 선언 싱글 톤
나는 모든 bean이 기본 스코프 (프로토 타입이나 세션 없음) 인이 새로운 mvc 프로젝트를 가지고있다. 단일 애플리케이션 컨텍스트.
나는 알고 싶다 모든 bean을 기본 범위로 만듦으로써 우리는 전체 응용 프로그램을 단일 스레드에서 실행하려고합니까?
그렇다면 여러 세션 또는 동일한 세션의 각 httprequest가 이전의 작업이 완료 될 때까지 대기열에 넣어 둘 수 있습니까? 이러한 시나리오를 피하는 방법은 어떤 조언이나 링크가 도움이 될 수 있습니다.
나는 상대적으로 봄과 자바 개발에 익숙하다.
해결법
-
==============================
1.스프링 빈은 일반적으로 상태 비 저장이므로 여러 스레드에서 안전하게 호출 할 수 있습니다. 그게 당신의 응용 프로그램이 작동하는 방법입니다 : 모든 컨트롤러, 서비스, DAO 등의 인스턴스는 하나뿐입니다. 그러나 Spring을 통한 서블릿 컨테이너는 이러한 스레드를 여러 스레드에서 호출합니다. 스레드 안전은 완전히 스레드 안전합니다.
스프링 빈은 일반적으로 상태 비 저장이므로 여러 스레드에서 안전하게 호출 할 수 있습니다. 그게 당신의 응용 프로그램이 작동하는 방법입니다 : 모든 컨트롤러, 서비스, DAO 등의 인스턴스는 하나뿐입니다. 그러나 Spring을 통한 서블릿 컨테이너는 이러한 스레드를 여러 스레드에서 호출합니다. 스레드 안전은 완전히 스레드 안전합니다.
실제로 일반 서블릿에서는 상황이 동일합니다. 각 서블릿의 인스턴스 만 존재하며 무한 수의 스레드로 액세스 할 수 있습니다. 이 서블릿이 stateless이거나 적절하게 동기화되어있는 한.
Spring이 풀링 된 ejb의 비 상태 세션 빈과 Spring을 혼동하지 말고 각 클라이언트는 풀에서 자체 인스턴스를 얻습니다 .1
1 - 사실 그것은 약간 벙어리입니다 - 빈은 정의에 의해 상태가 없기 때문에 빈을 풀링하고 동시 액세스를 방지 할 필요가 없습니다 ...
-
==============================
2.싱글 톤은 각 빈의 인스턴스가 하나만 존재 함을 의미합니다. 일반적으로 이러한 콩은 아무런 상태도없는 처리 요소입니다. 그들에게 불려지는 메소드는 작업 할 입력이 들어있는 컨텍스트를 전달됩니다. 따라서 이러한 싱글 톤 빈에 대한 메소드 호출은 본질적으로 스레드로부터 안전합니다.
싱글 톤은 각 빈의 인스턴스가 하나만 존재 함을 의미합니다. 일반적으로 이러한 콩은 아무런 상태도없는 처리 요소입니다. 그들에게 불려지는 메소드는 작업 할 입력이 들어있는 컨텍스트를 전달됩니다. 따라서 이러한 싱글 톤 빈에 대한 메소드 호출은 본질적으로 스레드로부터 안전합니다.
from https://stackoverflow.com/questions/12147314/spring-mvc-declaring-all-beans-singleton by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Apache-CXF JAX-WS에서 스프링 보안을 사용하는 방법 (0) | 2019.04.01 |
---|---|
[SPRING] spring websocket에 연결할 때 사용자에게 메시지를 보내는 방법 (0) | 2019.04.01 |
[SPRING] 봄, Jquery의 폼 태그 기반 Datepicker? (0) | 2019.04.01 |
[SPRING] JPA / 큰 컬렉션을 최대 절전 모드로 전환 (0) | 2019.04.01 |
[SPRING] 내가 얻은 오류에 따라 SPRING_SECURITY_LAST_EXCEPTION.message를 사용자 정의하는 방법 (0) | 2019.04.01 |