Spring - AOP 프록시 객체가 적용되는 과정 - AutoProxyCreator(자동 프록시 생성기)

salgu·2022년 3월 5일
0

Spring

목록 보기
9/22

앞서 이야기한 스프링 부트 자동 설정으로 AnnotationAwareAspectJAutoProxyCreator 라는 빈 후처리기가 스프링 빈에 자동으로 등록됩니다.
이 빈 후처리기는 스프링 빈으로 등록된 Advisor 들을 자동으로 찾아서 프록시가 필요한 곳에 자동으로 프록시를 적용해줍니다.
Advisor 안에는 Pointcut 과 Advice 가 이미 모두 포함되어 있습니다.
따라서 Advisor 만 알고 있으면 그 안에있는 Pointcut 으로 어떤 스프링빈에 프록시를 적용해야 할지알 수 있습니다.
그리고 Advice로 부가기능을 적용하면 됩니다.

자동 프록시 생성기의 작동 과정

  1. 생성: 스프링이 스프링 빈 대상이 되는 객체를 생성합니다. (@Bean , 컴포넌트 스캔 모두 포함)
  2. 전달: 생성된 객체를 빈 저장소에 등록하기 직전에 빈 후처리기에 전달합니다.
  3. 모든 Advisor 빈 조회: 자동 프록시 생성기 - 빈 후처리기는 스프링 컨테이너에서 모든 Advisor 를 조회합니다.
  4. 프록시 적용 대상 체크: 앞서 조회한 Advisor 에 포함되어 있는 포인트컷을 사용해서 해당 객체가 프록시를 적용할 대상인지 아닌지 판단합니다.
    객체의 클래스 정보는 물론이고, 해당 객체의 모든 메서드를 포인트컷에 하나하나 모두 매칭해봅니다.
    조건이 하나라도 만족하면 프록시 적용 대상이 됩니다.
  5. 프록시 생성: 프록시 적용 대상이면 프록시를 생성하고 반환해서 프록시를 스프링 빈으로 등록하고 프록시 적용 대상이 아니라면 원본 객체를 반환해서 원본 객체를 스프링 빈으로 등록합니다.
  6. 빈 등록: 반환된 객체는 스프링 빈으로 등록된다.





reference : 김영한선생님

profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글