ObjectProvider
스프링 기본 - 스코프와 Provider
스프링 기본 - 스코프와 Provider
2022.06.13스코프와 Provider 첫번째 해결방안은 앞서 배운 Provider를 사용하는 것이다. 간단히 ObjectProvider를 사용해보자. main() 메서드로 스프링을 실행하고, 웹브라우저에 http://localhost:8080/log-demo 를 입력하자. 드디어 잘 작동하는 것을 확인할 수 있다. ObjectProvider 덕분에 ObjectProvider.getObject()를 호출하는 시점까지 request scope 빈의 생성을 지연할 수 있다.(정확히는 컨테이너에 요청하는 것을 지연) ObjectProvider.getObject()를 호출하는 시점에는 HTTP 요청이 진행중이므로 request scope 빈의 생성이 정상 처리된다. ObjectProvider.getObject()를 LogDe..
스프링 기본 - 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결
스프링 기본 - 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결
2022.06.10프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때 마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. 핵심 코드 실행해보면 ac.getBean()을 통해서 항상 새로운 프로토타입 빈이 생성되는 것을 확인할 수 있다. 의존관계를 외부에서 주입(DI)받는게 아니라 이렇게 직접 필요한 의존관계를 찾는 것을 Dependency Lookup(DL) 의존관계 조회(탐색) 이라한다. 그런데 이렇게 스프링의 애플리케이션 컨텍스트 전체를 주입받게 되면, 스프링 컨테이너에 종속적인 코드가 되고, 단위 테..