[Spring] Prototype Bean

Prototype Bean

IoC의 기본 개념은 어플리케이션을 구성하는 핵심 오브젝트를 코드가 아닌 컨테이너가 관리하는 것이다. 그렇기 때문에 의존관계 주입, 초기화, DI, DL, 제거까지 모든 오브젝트의 생명 주기를 컨테이너가 관리한다. 하지만 프로토타입 빈은 IoC의 기본 원칙을 따르지 않는다. 프로토타입 빈에 대한 요청이 있을 때 마다 컨테이너는 생성, 초기화, DI 까지만 관여한다. 이 이후의 빈에 대한 관리는 프로토타입 빈을 DI받은 오브젝트에 있다. 가령 메소드 안에서 사용하고 따로 프로토타입 빈을 저장하지 않는다면 메소드가 끝나면서 프로토타입 빈 오브젝트도 함께 제거된다.

Useage

이런 프로토타입 빈은 사용자의 요청에 따라 매번 독립적인 오브젝트를 만들어야 하는데 있어 새롭게 만들어지는 오브젝트가 컨테이너 내의 빈을 사용해야 하는 경우에 프로토타입 빈을 사용한다.

즉 요청마다 독립적인 오브젝트를 생성할 필요가 있고 컨테이너의 빈을 사용해야할 필요가 있을 때 사용한다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/12/Spring/prototype_bean/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.