인프런 커뮤니티 질문&답변
@Aspect 안에 여러 어드바이스 작성 시, 어드바이저는 어떻게 구성이 되나요?
작성
·
583
0
안녕하세요!
항상 좋은 강의 및 답변주셔서 감사합니다.
강의를 듣고 복습하던 도중 한 가지 궁금한 부분이 있어 글을 작성하게 되었습니다.
@Aspect
@Slf4j
public class AspectV2 {
@Pointcut("execution(* hello.aop..*.*(..))")
public void allOrder(){}
// public java.lang.String hello.aop.order.OrderRepository.save(java.lang.String)
@Around("allOrder()")
public Object doLog1(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("[log] {}", joinPoint.getSignature());
return joinPoint.proceed();
}
@Around("allOrder()")
public Object doLog2(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("[log] {}", joinPoint.getSignature());
return joinPoint.proceed();
}
}
위의 코드에서 어드바이저는 총 몇개가 생기는지 궁금합니다.
@Aspect가 있는 빈이 생길 경우, AutoProxyCreator가 @Aspect를 읽고 어드바이저를 작성해서 @Aspect Advisor 빌더 내부에 저장해두는 것으로 알려주셨는데요...
위의 코드가 실행되면, 어드바이저는 2개가 되는 걸까요? 아니면 1개만 되는 걸까요? 제가 이해하기로는 어드바이저는 주로 Default Advisor를 사용해서 1포인트컷 + 1어드바이저로 구성된다고 이해를 해서 2개가 생길 것으로 생각되긴 한데...
항상 좋은 강의 및 답변 해주셔서 고맙습니다.
감사합니다!






안녕하세요, 영한님. 답글 감사드립니다
어스펙트 안에 여러 어드바이저가 생긴다면, 여러 어드바이저를 가진 어스펙트를 가진 하나의 프록시만 생성되는 것으로 이해하면 될까요?