스코프는 스프링 앱이 구동 될 때 스프링 빈을 언제 어떻게 생성하여 사용할 건지 결정해준다.
싱글톤(Singleton) : 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때까지 유지되는 가장 넓은 범위의 스코프이다.
프로토타입(Prototype) : 스프링 컨테이너는 프로토타입 빈을 필요한 시점에 생성하고, 의존 관계 주입, 초기화까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.
웹 관련 스코프
빈 스코프는 다음과 같이 지정할 수 있다.
// 컴포넌트 스캔 자동 등록
@Scope("prototype")
@Component
public class HelloBean {}
// 외부 설정 파일 수동 등록
@Scope("prototype")
@Bean
PrototypeBean HelloBean() {
return new HelloBean();
}
@PreDestory 같은 종료 메서드가 호출되지 않는다.