Bean의 범위 알아보기

까망사과·2023년 6월 5일
0

Spring 찍먹하기

목록 보기
2/5

🍕 Bean의 범위

모든 Bean은 관리되는 범위(scope)를 가지고 있다.

Spring 컨테이너는 기본적으로 Bean을 싱글턴(singleton)으로 관리하지만 다른 범위를 설정할 수도 있다.

Spring에서 사용할 수 있는 Bean 범위는 다음 6가지다.

범위설명비고
singleton단일 인스턴스 공유기본값
prototype매번 새 인스턴스 생성
requestHTTP 요청의 수명주기웹 컨텍스트에서만 사용 가능
sessionHTTP 세션의 수명주기웹 컨텍스트에서만 사용 가능
applicationServletContext의 수명주기웹 컨텍스트에서만 사용 가능
websocketWebSocket의 수명주기웹 컨텍스트에서만 사용 가능

🍔 @Scope로 범위 설정하기

config 클래스에서 Bean 메서드에 @Scope 어노테이션을 달고 범위를 나타내는 문자열을 값으로 전달하면 Bean의 범위를 설정할 수 있다.

@Configuration
public class AppConfig {
	
    @Bean
    @Scope("singleton")
    public SingletonBean singletonBean() { ... }
    
    @Bean
    @Scope("prototype")
    public PrototypeBean prototypeBean() { ... }
    
    ...
}

🔍 참고자료

Bean Scopes :: Spring Framework

0개의 댓글