FrameWork/Spring&Spring-boot

Spring 기본 33 - 빈 스코프

Surge100 2023. 11. 29. 12:09

빈 스코프란?

지금까지는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료 될 때 까지 유지한다고 학습하였다. 이것은 스프링 빈이 기본적으로 싱글톤 스코드로 생성되기 때문이다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위(시간적 개념)를 뜻한다.

 

스프링은 다음과 같은 다양한 스코프를 지원한다.

  • 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.
  • 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 
    • 스프링 빈에 대한 요청이 오면 스프링 컨테이너가 해당 객체 인스턴스를 만든다. 
    • 의존관계 주입과 초기화 메서드까지 호출을 한다. 
    • 마지막으로 요청한 클라이언트에게 스프링 빈을 반환하고 스프링 컨테이너는 더이상 관여하지 않는다.
  • 웹 관련 스코프
    • request : 웹 요청이 드어오고 나갈 때 까지 유지되는 스코프이다.
    • session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다.
    • application : 웹의 서블릿 컨텍스와 같은 범위로 유지되는 스코프이다.

 

빈 스코프는 다음과 같이 지정할 수 있다.

 

컴포넌트 스캔 자동 등록

@Scope("prototype")
@Component
public class HelloBean{}

 

 

수동 등록

@Scope("prototype")
@Bean
PrototypeBean HelloBean(){
	return new HelloBean();		
}

 

 

[출처 - 스프링 핵심 원리 - 기본편]

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢

www.inflearn.com