-
Spring 기본 33 - 빈 스코프FrameWork/Spring&Spring-boot 2023. 11. 29. 12:09
빈 스코프란?
지금까지는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료 될 때 까지 유지한다고 학습하였다. 이것은 스프링 빈이 기본적으로 싱글톤 스코드로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위(시간적 개념)를 뜻한다.
스프링은 다음과 같은 다양한 스코프를 지원한다.
- 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.
- 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.
- 스프링 빈에 대한 요청이 오면 스프링 컨테이너가 해당 객체 인스턴스를 만든다.
- 의존관계 주입과 초기화 메서드까지 호출을 한다.
- 마지막으로 요청한 클라이언트에게 스프링 빈을 반환하고 스프링 컨테이너는 더이상 관여하지 않는다.
- 웹 관련 스코프
- request : 웹 요청이 드어오고 나갈 때 까지 유지되는 스코프이다.
- session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다.
- application : 웹의 서블릿 컨텍스와 같은 범위로 유지되는 스코프이다.
빈 스코프는 다음과 같이 지정할 수 있다.
컴포넌트 스캔 자동 등록
@Scope("prototype") @Component public class HelloBean{}
수동 등록
@Scope("prototype") @Bean PrototypeBean HelloBean(){ return new HelloBean(); }
[출처 - 스프링 핵심 원리 - 기본편]
'FrameWork > Spring&Spring-boot' 카테고리의 다른 글
Spring 기본 35 - 프로토타입 스코프 (싱글톤 빈과 함께 사용시 문제점) (0) 2023.11.30 Spring 기본 34 - 프로토타입 스코프 (1) 2023.11.29 Spring 기본 32 - 애노테이션 @PostConstruct,@PreDestory (1) 2023.11.29 Spring 기본 31 - 빈 등록 초기화, 소멸 메서드 (0) 2023.11.29 Spring 기본 30 - 인터페이스 IntializingBean, DisposableBean (0) 2023.11.29