각각의 Thread는 singleton으로 생성된 Bean( ⇒ Controller 포함 ) 들을 참고하여 일을 함
*이 때 생성되는 Bean들은 기본적으로 singleton
> Controller 역시 singleton으로 각각의 Thread들이 하나를 공통적으로 사용한다고 보면 됨
Controller 객체는 Heap에 생성되지만 class에 대한 정보는 Method 영역에 저장됨 > 모든 Thread들이 접근 가능
하나의 Singleton Controller가 수많은 요청을 처리하는 것이 아니고 각각의 Thread가 singleton으로 생성된 Controller를 참고하여 요청을 실행함
결론
생성한 Controller 클래스에 대한 정보가 JVM 메모리 영역 중 Method Area(메서드 영역)에 올라가기 때문입니다.
Controller 객체는 Heap(힙)에 생성 되지만, 해당 클래스의 정보(메소드 처리 로직, 명령들)는 Method Area(메서드 영역)에 생성 됩니다.
따라서 결국 모든 Thread가 객체의 메서드를 공유할 수 있기 때문에 Controller는 1개만 생성됩니다.
'스터디 > 소연' 카테고리의 다른 글
POJO란 무엇인가요? Spring Framework에서 POJO는 무엇이 될 수 있을까요? (0) | 2024.04.22 |
---|---|
스프링 Bean의 Scope에 대해서 설명해주세요. (1) | 2024.04.18 |
자료형 - HashSet, HashMap (0) | 2024.04.11 |
자료형 - Array / ArrayList / LinkedList (0) | 2024.04.11 |
자료형 - String / StringBuffer (0) | 2024.04.11 |