• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

V2에 대해서 질문있습니다.

22.09.03 19:41 작성 조회수 226

3

 

구현 클래스(OrderRepositoryV2)를 따로 bean으로 등록하지 않고 프록시를 빈동록할 때 new 연산자로 생성해주는 이유가 따로 있을까요?

@Bean
public OrderRepositoryV2 orderRepositoryV2(LogTrace logTrace) {
    //이 부분
    OrderRepositoryV2 repository = new OrderRepositoryV2();
    
    return new OrderRepositoryConcreteProxy(repository, logTrace);
}

proxy를 bean으로 등록할 때 그 안에서 OrderRepositoryV2 객체를 생성하니

똑같이 싱글톤처럼 사용되긴 할텐데 따로 bean 등록한 후 의존 주입을 하지 않는 이유가 궁금합니다.

 

 

답변 1

답변을 작성해보세요.

2

안녕하세요. 조윤호님

OrderRepositoryV2를 빈으로 주입하게 되면, 프록시가 아닌 실제 빈이 주입될 가능성이 있습니다. 이런 문제를 원천 차단하는 것이지요.

그래서 항상 프록시를 통해서 원본 객체에 접근하도록 의도한 것입니다^^

감사합니다.

조윤호님의 프로필

조윤호

질문자

2022.09.05

아하

생각해보니 proxy 객체와 핵심 기능을 가진 객체가 같은 타입이라 그런 문제가 발생할 수 있겠네요

 

감사합니다.