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를 공유할 때 발생할 문제들을 애초에 없애기 위함이다.
'아는 만큼 보인다 > Spring Framework' 카테고리의 다른 글
서비스 추상화 그리고 DI (Dependency Injection) (0) | 2012.06.06 |
---|---|
JdbcTemplate (쓰기 편한 database 접속 api) (0) | 2012.05.23 |
DI Container = ApplicationContext의 또 다른 이름.. (0) | 2012.05.07 |
Annotations (0) | 2012.05.03 |
IoC (Inversion of Control) (0) | 2012.05.03 |