오늘
빈 스코프(Bean Scope)
Bean definition
빈이 존재할 수 있는 범위를 의미한다.
Scope | Description |
---|
singleton (싱글톤) | 기본값. 각 Spring 컨테이너에 대한 단일 객체 인스턴스에 대한 단일 Bean 범위를 지정. |
prototype | 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프. |
request | 웹 요청이 들어오고 나갈 때까지 유지. |
session | 웹 세션 생성부터 종료까지 |
application | 웹의 서블릿 컨텍스와 같은 범위로 유지 |
websocket | 단일 Bean definition 범위를 WebSocket의 라이프사이클까지 확장. |
출처 : https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/beans.html#beans-factory-scopes
싱글톤 스코프
클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴.
- 스프링 컨테이너의 시작과 함께 생성 ~ 종료까지 유지.
- 싱글톤 빈의 하나의 공유 인스턴스만 관리하게 됨.
- private 생성자를 사용해 외부에서 임의로 new를 사용하지 못하도록 막아야함.
- 해당 Bean definition와 일치하는 ID, ID를 가진 빈에 대한 모든 요청은 스프링 컨테이너에서 해당 특정 Bean 인스턴스를 반환.
- 스프링 컨테이너 종료시 소멸 메서드도 자동 실행.
Container(컨테이너) 설정
@Bean / @ Configuration
의존관계 주입방법