[Spring] request scope bean과 proxy의 관계에 대한 나름의 이해

2023. 11. 2. 14:13Spring

provider를 활용하지 않고 proxy를 활용해서 request scope bean을 사용하는 controller가 생성자 주입할때 발생하는 문제를 해결할 수 있다.

proxy는 가짜를 만든다.

다음의 annotation을 붙여준다.

@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)

그러면 가짜가 생성자 주입 때 주입이 된다.

이후 request 요청이 오고 빈이 만들어지면 대체한다.

장점은 코드가 간결해진다.

 

request scope bean의 주의점은 무분별하게 사용하면 유지보수가 어려워진다.

왜냐하면 싱글톤 같이 작동하는 것처럼 보이기 때문이다.

 

Provider를 사용하든 프록시를 사용하든 핵심 아이디어는 진짜 객체 조회가 필요한 시점까지 지연처리한다는 점이다.

어노테이션 설정 변경만으로 가능한데 이것이 다형성, DI 컨테이너가 가지는 강점이다.

꼭 웹스코프가 아니라도 프록시는 사용할 수 있다.

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%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&unitId=55394

 

학습 페이지

 

www.inflearn.com