인프런 커뮤니티 질문&답변
@Aspect 안에 여러 어드바이스 작성 시, 어드바이저는 어떻게 구성이 되나요?
작성
·
596
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개가 생길 것으로 생각되긴 한데...
항상 좋은 강의 및 답변 해주셔서 고맙습니다.
감사합니다!
퀴즈
AOP에서 어드바이스가 적용될 지점(Join Point)을 지정하는 규칙 또는 표현식을 무엇이라고 할까요?
어드바이스
애스펙트
포인트컷
위빙






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