Prototype Scope
Prototype Scope
Scope
- Spring에서
scope
란 빈이 존재할 수 있는 범위를 의미 - 각 bean은 다음과 같은
scope
를 가짐- Singleton: 기본 스코프
- Prototype
- 웹 관련 scope들
Prototype
Prototype scope
를 가진 빈은 굉장히 짧은scope
를 가짐- Spring container가 빈의 생성 및 의존 관계 주입까지만 관여하고 더는 관리하지 않음
- 이후 이 프로로타입 빈은 클라이언트에게 책임이 있고,
@PreDestroy
등의 종료 메소드를 호출 불가 - Bean에
@Scope("prototype")
어노테이션을 붙여 적용 가능
싱글톤과의 차이점
- 싱글톤 빈은 여러 요청에 따라 항상 같은 인스턴스의 빈을 반환
- 프로토타입 빈은 클라이언트가 요청할때마다 새로운 인스턴스를 생성해서 반환
- 프로토타입 빈을 싱글톤 빈 내부에서 그냥 사용하면 싱글톤처럼 사용됨
- 이 경우
Provider
를 통해 문제를 해결 가능
- 이 경우
References
- 스프링 핵심 원리 기본편 - 김영한 (https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard)