김찬진의 개발 블로그

[23/04/25] 진짜 객체가 컨테이너에 등록되기 전에는 프록시 객체 사용을 조심하자 본문

1일1배움/Spring (김영한 님)

[23/04/25] 진짜 객체가 컨테이너에 등록되기 전에는 프록시 객체 사용을 조심하자

kim chan jin 2023. 4. 25. 16:56

원래 내 의도는 MyLogger 객체를 request scope bean객체로 사용하는 것이었다.
하지만 MyLogger 프록시 객체는 singleton scope bean객체로 만들어진다.


즉, 나의 원래 의도는 MyLogger 객체를 HTTP request객체가 들어오고 HTTP response객체로 나가는 동안 해당 HTTP request객체를 보낸 client에게는 동일한 requset scope bean객체를 조회할 수 있도록 하는 것이었다.
하지만 MyLogger 프록시 객체는 MyLogger를 상속받아 singleton방식으로 만들어졌고 singleton scope bean객체가 되기 때문에 원래 의도였던 request scope bean객체로서 사용할 수 없게 된다.

 

대신 MyLogger 객체가 생성된 이후라면 MyLogger 프록시 객체가 MyLogger 객체를 조회하게 하고 반환시켜준다.

즉, 진짜 MyLogger 객체가 생성되기 전에 MyLogger 프록시 객체를 진짜 MyLogger 객체처럼 사용하려 한다면 원래 의도였던 request scope bean객체로 사용하지 못하고 singleton scope bean객체로 사용할 수도 있다.
그래서 MyLogger 프록시 객체를 사용할 때 조심하라는 것이다.

Comments