작성
·
231
1
안녕하세요~! 간단한 질문이 있습니다!
혹시 그러면 Proxy 를 사용하게 되면 Bean Container 에는 진짜 MyLogger.class 가 등록될 일은 없는 걸까요?
Proxy 를 사용하지 않으면 Request 가 들어오면 어쨌든 잠깐이라도 Bean Container 에 등록이 되었다가 폐기 되는 것으로 이해 했었습니다.
하지만 Proxy 를 사용하면 가짜 Porxy My Logger 가 싱글톤처럼 Bean 등록이 되고, 필요시 호출될 때마다 진짜 My Logger 를 사용하려는 클래스에 넘겨주게 되는 것이 맞을까요? (관리 객체는 클라이언트 객체: Controller, Service ).
답변 1
2
안녕하세요. kwj3591님, 공식 서포터즈 David입니다.
혹시 그러면 Proxy 를 사용하게 되면 Bean Container 에는 진짜 MyLogger.class 가 등록될 일은 없는 걸까요?
=> 싱글톤 스코프의 경우 MyLogger 도 빈으로 생성되어 컨테이너에서 관리합니다. 리퀘스트 스코프의 경우 애플리케이션 실행 즉시 빈으로 생성되지 않으며 요청이 들어올 때만 생성됩니다.
Proxy 를 사용하지 않으면 Request 가 들어오면 어쨌든 잠깐이라도 Bean Container 에 등록이 되었다가 폐기 되는 것으로 이해 했었습니다.
=> 리퀘스트 스코프를 가지는 빈은 빈 팩토리에 의해 생성되지만 실제 보관되는 장소는 reqeust attributes 입니다. 싱글톤 스코프 빈의 경우 빈 컨테이너의 싱글톤 객체 저장공간에 저장됩니다.
하지만 Proxy 를 사용하면 가짜 Porxy My Logger 가 싱글톤처럼 Bean 등록이 되고, 필요시 호출될 때마다 진짜 My Logger 를 사용하려는 클래스에 넘겨주게 되는 것이 맞을까요? (관리 객체는 클라이언트 객체: Controller, Service ).
=> 네, 맞습니다.
감사합니다.