오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > 하나의 프록시 여러 Advisor 적용, 정리 본문
728x90
스프링 핵심 원리 - 고급편 > 하나의 프록시, 여러 Advisor 적용
스프링 빈이 advisor1, advisor2가 제공하는 포인트컷의 조건을 모두 만족하면 프록시 자동 생성기는 프록시를 몇 개 생성할까?
프록시 자동 생성기는 프록시를 하나만 생선한다. 왜냐면 프록시 팩토리가 생성하는 프록시는 내부에 여러 advisor를 포함할 수 있기 때문이다.
따라서 프록시를 여러 개 생성하여 비용을 낭비할 이유가 없다.
프록시 자동 생성기 상황별 정리
advisor1의 포인트컷만 만족 프록시1개 생성, 프록시에advisor1만 포함advisor1,advisor2의 포인트컷을 모두 만족 프록시1개 생성, 프록시에advisor1,advisor2모두 포함advisor1,advisor2의 포인트컷을 모두 만족하지 않음 프록시가 생성되지 않음
그렇다면 아래 경우는 어떻게 될까
A객체에Advisor1,B객체에Advisor2A객체에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