study-toby-spring / dongheon.shin

MIT License
0 stars 0 forks source link

Bean - Scope #2

Open XDXO opened 7 years ago

XDXO commented 7 years ago

개요

빈을 사용하면서 반드시 알아야 할 것 중에 하나가 빈의 스코프와 생명주기로, 그 중에 먼저 스코프에 대해 알아보려고 한다. Spring이 관리하는 오브젝트인 빈이 생성, 존재, 적용되는 범위를 의미하며, 기본적으로는 컨테이너에 하나만 존재하는 싱글톤 스코프를 가지나 별도의 스코프를 부여할 수 있다.

종류

Scope Description
SCOPE_SINGLETON 컨테이너 내에 유일한 객체를 두고 관리
SCOPE_PROTOTYPE 요청할 때마다 새로운 객체를 제공
SCOPE_REQUEST HTTP 요청이 발생할 때마다 생성
SCOPE_SESSION HTTP 세션의 생명주기를 따름

적용 예시

XML 기반

<beans ... >
    <bean class="Shape" scope="prototype"/>
</beans>

Java 기반

@Configuration
public class ShapeFactory {

    @Bean
    @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public Shape createShape() {
        ...
    }
}