본문 바로가기

Programming/[Spring]

[Spring] 스프링 빈 스코프(Spring Bean Scope)


Spring Bean Scope

 

스프링에서 Bean으로 지정된 객체는 기본적으로 싱글톤 객체로 관리된다. 하지만 요구사항 과 구현기능 등의 필요에 따라서 비싱글톤이 필요한 경우도 많다. 스프링에서는 이를 명시적으로 구분하기 위해서 scope라는 키워드를 제공한다.

 

 

빈 스코프(scope)

 별도의 scope를 지정하지 않으면 스프링에서 default는 singleton 이다.

  • singleton : 기본 싱글톤 스코프
  • prototype : 어플리케이션에서 요청시 (getBean()) 마다 스프링이 새 인스턴스를 생성
  • request : HTTP 요청별로 인스턴스화 되며 요청이 끝나면 소멸 (spring mvc webapplication 용도)
  • session : HTTP 세션별로 인스턴스화되며 세션이 끝나며 소멸 (spring mvc webapplication 용도)
  • global session : 포틀릿 기반의 웹 어플리케이션 용도. 전역 세션 스코프의 빈은 같은 스프링 MVC를 사용한 포탈 어플리케이션 내의 모든 포틀릿 사이에서 공유할 수 있다
  • thred : 새 스레드에서 요청하면 새로운 bean 인스턴스를 생성, 같은 스레드에 대해서는 항상 같은 bean 인스턴스가 반환
  • custom : org.pringframework.beans.factory.config.Scope를 구현하고 커스텀 스코프를 스프링의 설정에 등록하여 사용


'Programming > [Spring]' 카테고리의 다른 글

[Spring] Maven  (0) 2019.06.12
[Spring] Springboot  (0) 2019.06.05
[Spring] 스프링 어드바이스 종류(Spring Advice)  (0) 2018.05.17
[Spring] Annotation 종류와 기능  (0) 2018.05.16
[Spring] Spring 처음 시작  (0) 2018.05.15