Spring Bean Scope 정리
- 프로그래밍/Spring FWK
- 2015. 12. 27. 12:58
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를 구현하고 커스텀 스코프를 스프링의 설정에 등록하여 사용
request, session, global session의 스코프는 일반 spring 어플리케이션이 아닌, Spring MVC Web Application에서만 사용되는 용도
XML 사용방법
xml 설정파일 bean정의 시 scope 명시적 지정
1 |
<bean id="normalBean" class="com.java.SomeClass" scope="singleton"/> |
cs |
Annotation 사용방법
대상 Class 어노테이션 정의시 @Scope 지정
1
2
3
4
5
6
7
8
9 |
package com.java.pojo;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@Service("simpleBean")
@Scope("singletone")
public class SimpleClass {
} |
cs |
'프로그래밍 > Spring FWK' 카테고리의 다른 글
Spring ApplicationContextAware Interface (0) | 2015.12.28 |
---|---|
Spring BeanNameAware Interface (1) | 2015.12.28 |
Spring Bean Life Cycle (빈 생명주기 관리) (0) | 2015.12.28 |
Spring bean 상속 (0) | 2015.12.27 |
Spring Method Replace (replaced-method) (0) | 2015.12.18 |
Spring Method LookUp Injection (0) | 2015.12.16 |
Spring Non Singletone (0) | 2015.12.14 |
Spring Collection (List, Map, Properties, Set) 주입 (0) | 2015.12.13 |
이 글을 공유하기