오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > 하나의 프록시 여러 Advisor 적용, 정리 본문
728x90
스프링 핵심 원리 - 고급편 > 하나의 프록시, 여러 Advisor 적용
스프링 빈이 advisor1
, advisor2
가 제공하는 포인트컷의 조건을 모두 만족하면 프록시 자동 생성기는 프록시를 몇 개 생성할까?
프록시 자동 생성기는 프록시를 하나만 생선한다. 왜냐면 프록시 팩토리가 생성하는 프록시는 내부에 여러 advisor
를 포함할 수 있기 때문이다.
따라서 프록시를 여러 개 생성하여 비용을 낭비할 이유가 없다.
프록시 자동 생성기 상황별 정리
advisor1
의 포인트컷만 만족 프록시1개 생성, 프록시에advisor1
만 포함advisor1
,advisor2
의 포인트컷을 모두 만족 프록시1개 생성, 프록시에advisor1
,advisor2
모두 포함advisor1
,advisor2
의 포인트컷을 모두 만족하지 않음 프록시가 생성되지 않음
그렇다면 아래 경우는 어떻게 될까
A
객체에Advisor1
,B
객체에Advisor2
A
객체에Advisor1
,B
객체에Advisor1
위 상황은 서로 다른 객체이기 때문에 프록시가 각각 생성된다. 기본적으로 스프링 프록시 전략은 한 객체(스프링 Bean)에 대해서만 하나의 프록시 객체를 생성하기 때문이다. 주의하도록 하자.
정리
자동 프록시 생성기인 AnnotationAwareAspectJAutoProxyCreator
덕분에 개발자는 매우 편리하게 프록시를 적용할 수 있다.
이제 Advisor
만 스프링 빈으로 등록하면 된다.Advisor
= Pointcut
+ Advice
출처: 김영한 지식공유자의 스프링 핵심 원리 고급편
728x90
'BE > Spring' 카테고리의 다른 글
스프링 핵심 원리 - 고급편 > @Aspect 프록시 설명 , 정리 (0) | 2024.11.02 |
---|---|
스프링 핵심 원리 - 고급편 > @Aspect 프록시 적용 (0) | 2024.11.02 |
스프링 핵심 원리 고급편 - 스프링이 제공하는 빈 후처리기 1, 2 (0) | 2024.10.08 |
스프링 핵심 원리 - 고급편 > 빈 후처리기 적용, 정리 (0) | 2024.10.07 |
스프링 핵심 원리 - 고급편 > 빈 후처리기 예제 (0) | 2024.10.06 |
Comments