본문 바로가기

prototype bean2

9-4. 프로토타입과 싱글톤 빈을 함께 사용할 때 주의할 점 프로토타입 빈은 조회 시점마다 새로 생성되기 때문에, 각 요청마다 서로 다른 빈을 사용하는 로직을 설계할 때 적합하다. 하지만 싱글톤 빈과 함께 사용할 경우 의도한대로 동작하지 않을 수 있다. 싱글톤 빈이 어떤 프로토타입 빈을 의존할 때, 생성 시점에 주입받은 프로토타입 빈은 여러번 받는게 아니기 때문이다.  싱글톤 스코프인 어떤 clientBean이 prototypeBean을 의존하는 예시를 보자. clientBean은 prototypeBean 하나를 주입받아 가지고 있는 상황이다.   여기서 여러 클라이언트가 내부적으로 prototypeBean을 사용하는 clientBean의 addCount() 메서드를 호출한다면,여러 클라이언트가 같은 prototypeBean에 접근하게 된다. clientBean이.. 2024. 7. 28.
9-2. 프로토타입 스코프 프로토타입 스코프의 특징은 다음과 같다.생명주기: 클라이언트 요청 시 ~ 클라이언트의 별도 소멸 로직 실행 시스프링 컨테이너에 조회할 때마다 항상 새로운 인스턴스를 생성해 반환한다.스프링 컨테이너는 프로토타입 생성 및 초기화, 주입까지만 관여하고 이후 관여하지 않는다.      프로토타입 빈의 특징을 확인하는 테스트코드를 다음과 같이 짤 수 있다. 테스트 코드는 JUnit5를 기준으로 작성되었다.public class PrototypeBeanTest { @Test void prototypeBeanFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.cla.. 2024. 7. 27.