본문 바로가기

아는 만큼 보인다/Spring Framework

Singleton Registry = ApplicationContext의 또 다른 이름

BeanFactory = ApplicationContext = IoC Container = Spring Container 가 생성/관리하는 빈 오브젝트는 

특별한 설정이 없는 한,  (빈의 scope이  prototype scope, request scope, session scope 이 아닌 이상..)

싱글톤 오브젝트이다.


이러한 이유로 Spring Container을 Sigleton Registry 라고도 부른다.


한 가지 기억해둘 것은 ..

빈으로 등록되는 클래스가 디자인 패턴의 하나인 Singleton pattern을 적용한 클래스가 아니다라는 점

빈으로 등록되는 클래스는 (private 생성자, public static getInstance() 메소드등이 없는) 평범한 클래스이다. 

이 평범한 클래스를 빈 컨테이너가 관리하면.. Singleton object가 된다


또 한 가지 더 기억해둘 것은 ..

빈으로 등록할 클래스는 Singleton Object가 되기 때문에.. 

stateless 방식으로 만들어야 된 다는 점, 

이유는 멀티쓰레드 환경에서 하나의 Object를 공유할 때 발생할 문제들을 애초에 없애기 위함이다.