<aside> 💡 싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다. ‼️ 반면에, 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환한다.

</aside>

Untitled

Untitled

위까지는 간단한 경우였으나, <간단하지 않은경우> 보통 대부분 싱글톤 빈을 사용하고 프로토타입 빈은 어쩌다 쓰게됨. 그러면 싱글톤빈과 프로토타입 빈은 스코프 빈을 같이 쓰게됨.—> 이러면 중대한 문제점이 발생하게됨.

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점

스프링 컨테이너에 프로토타입 스코프의 빈을 요청하면 항상 새로운 객체 인스턴스를 생성해서 반환한다. 하지만, 싱글톤 빈과 함께 사용할 때는 의도한 대로 잘 동작하지 않으므로 주의해야 한다.

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결

ObjectFactory : 기능이 단순, 별도의 라이브러리 필요 없음, 스프링에 의존 ObjectProvider : 옵션, 스트림 처리등 편의 기능이 많고, 별도의 라이브러리 필요 없음. 스프링에 의존

Untitled

—> gradle에서 사용할 수 있게 내용추가 —> Provider 임포트할 때, Provider.inject로 해줘야함

mock 코드란 ?