7.14. 빈 프록시

주입된 빈의 클라이언트는 일반적으로 빈 인스턴스에 대한 직접 참조를 보유하지 않습니다. 빈이 종속 오브젝트인 @Dependent 범위가 아니면 컨테이너에서 프록시 오브젝트를 사용하여 삽입된 모든 참조를 빈으로 리디렉션해야 합니다.

클라이언트 프록시라고도 하는 빈 프록시는 메서드 호출을 수신하는 빈 인스턴스가 현재 컨텍스트와 연결된 인스턴스인지 확인합니다. 클라이언트 프록시를 사용하면 세션 컨텍스트와 같은 컨텍스트에 바인드된 빈을 재귀적으로 삽입하지 않고 디스크에 직렬화할 수도 있습니다.

Java 제한으로 인해 컨테이너에서 일부 Java 유형을 프록시할 수 없습니다. 이러한 유형 중 하나로 선언된 주입 지점이 @Dependent 이외의 범위를 사용하여 빈으로 확인되면 컨테이너에서 배포를 중단합니다.

특정 Java 유형은 컨테이너에서 프록시할 수 없습니다. 여기에는 다음이 포함됩니다.

  • 매개 변수 없이 비개인 생성자가 없는 클래스입니다.
  • 최종으로 선언되거나 최종 방법이 있는 클래스.
  • 배열 및 기본 유형.