[스프링(spring)]proxy

allnight5·2022년 12월 27일
0

스프링

목록 보기
19/62

참조사이트1
참조사이트2

싱글톤패턴

참조사이트
요약:
1. 싱글톤 패턴은 객체를 단 하나 생성하고 재활용할수있게하는 디자인 패턴이다.
2. 메모리를 아낄수있는 장점이있지만, 동시에 많은 단점을 보유하고있다.
3. 하지만, 장점을 살리고 단점을 모두없앤 스프링 컨테이너가 탄생했다.
4. 싱글톤 패턴(스프링 컨테이너) 는 무결성하게 짜야한다.

proxy란

클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장하여 클라이언트 클라이언트의 요청을 받아주어 처리하는 대리자 역할.

proxy간단 정리

  1. 클라이언트로부터 타겟을 대신해서 요청을 받는 대리인
  2. 실제 오브젝트인 타켓은 프록시를 통해 최종적으로 요청받아 처리함.
  3. 따라서 타켓은 자신의 기능에만 집중하고 부가기능은 프록시에게 위임함.

- 프록시의 호출 및 처리 순서 -

1) Proxy 호출
2) 보조 업무 처리
3) Proxy 처리 함수(메서드) 가 실제 구현 함수(메서드) 호출 및 주 업무 처리
4) 제어권이 다시 Proxy 함수(메서드)로 넘어오고 나머지 보조 업무 처리
5) 처리 작업 완료 후, 호출 함수(메서드)로 반환.

스프링에서의 프록시

참조사이트2

  • 프록시 모드를 설정하게 되면, 의존성 주입을 통해 주입되는 빈은 실제 빈이 아닌 해당 빈을 상속받은 가짜 프록시 객체이다.
  • 스프링은 CGLIB이라는 바이트 코드를 조작하는 라이브러리를 사용해서 프록시 객체를 주입해준다.
  • 프록시 객체 내부에는 실제 빈을 요청하는 로직이 들어있어, 클라이언트의 요청이 오면 그때 실제 빈을 호출해준다.(실제 빈의 조회를 필요한 시점까지 지연 처리)
  • 프록시 객체는 원래 빈을 상속받아서 만들어지기 때문에 클라이언트 입장에서는 실제 빈을 사용하는 것과 똑같은 방법으로 사용하면 된다.
  • @Scope 애노테이션의 proxyMode 옵션을 사용하여 설정할 수 있다.

AOP와 연관되어있는데.. 이거 말고는 이해를 못해서 예시나 설명을 더이상 추가를못하겠다.

profile
공부기록하기

0개의 댓글