스프링부트 자동 설정(리플렉션 사용)으로 빈 후처리기인(BeanPostProcessor를 구현한) AnnotationAwareAspectJAutoProxyCreator가 빈에 자동 등록이 되고 이 빈후처리기는 스프링 빈이 등록된 Advisor(pointcut1 + advice1)들을 찾아 그안에 있는 pointcut으로 프록시를 적용해준다.

- 생성 : 스프링이 스프링 빈 대상이 되는 객체를 생성한다.( @Bean, 컴포넌트 스캔 모두포함)
- 전달 : 생성된 객체를 빈 저장소에 등록하기 직전에 빈 후처리기에 전달
- 모든 Advisor 빈 조회 : 자동프록시 생성기(AnnotationAwareAspectJAutoProxyCreator)를 통해서 빈 후처리기는 스프링컨테이너에서 모든 Advisor를 조회한다. @Aspect가 붙은 클래스를 찾는다.
- 프록시 적용 대상 체크 : 앞서 조회한 Advisor에 포함되어 있는 포인트컷을 사용해서 해당 객체가 프록시를 적용할 대상인지 아닌지 판단한다.(포인트 컷에 대한 범위로만 대상 체크) 객체의 클래스 정보는 물론이고 객체의 모든 메서드를 포인트컷 하나하나 모두 매칭해본다.
- 프록시 생성 : 프록시 적용 대상이면 프록시를 생성하고 반환 프록시 적용 대상이 아니라면 원본 객체를 반환한다.
- 빈등록 : 반환된 객체는 빈으로 등록한다. 프록시라면 프록시로 빈으로 등록
트랜잭션 전파에 대해서 깊게 알아보기 Async, 쓰레드 로컬 등.