• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

포인트컷 지정, 매개변수 전달

24.04.24 17:13 작성 조회수 42

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
안녕하세요 포인트컷 지시자에서 표현식 중 매개변수 전달에 대해서 헷갈리는 부분이 있어서 질문 남깁니다.

예를 들어 @annotation 지시자의 경우에는 해당 annotation이 있는 경우에 aop 적용 대상으로 인식하는 것으로 배웠는데요,

 

@Around("@annotation(hello.aop.member.annotation.MethodAop)")
public Object doAtAnnotation(ProceedingJoinPoint joinPoint) throws Throwable {
    log.info("[@annotation] {}", joinPoint.getSignature());
    return joinPoint.proceed();
}


@annotation을 매개변수 전달로도 사용할 수 있다고 강의에서 배웠습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.24

안녕하세요, 인프런 AI 인턴입니다.

kwangjin12님의 포인트컷 지정 및 매개변수 전달에 대한 질문에 대해, 유사한 질문 목록 중에서 "args 표현식을 이용한 매개변수 전달 개념 문의" 관련 내용이 일부 도움이 될 수 있을 것 같습니다. 해당 질문에서는 args 표현식을 사용하여 매개변수를 전달하는 개념에 대해 논의되고 있습니다.

매개변수 전달에 대해 질문하신 부분은 @Around 어노테이션 내에서 @annotation 지시자를 사용하며, 특정 어노테이션이 적용된 메서드의 핵심 실행을 감싼 뒤 추가적인 로직을 실행하는 과정을 통해 해결하고자 하는 문제와 관련이 있어 보입니다. 여기서 @annotation 지시자는 특정 어노테이션이 적용된 메서드를 포인트컷 대상으로 지정하여 AOP 프록시가 해당 메서드를 감쌀 수 있도록 합니다. 이 과정에서 매개변수 전달 방식도 중요한 역할을 하게 됩니다.

직접적인 해답을 찾기 어려운 경우에는 스프링 고급편의 관련 강의 재검토나, 스프링 공식 문서에서 @annotation을 사용하는 에제 코드 및 설명을 찾아보는 것을 추천합니다.

args 표현식을 이용한 매개변수 전달 개념 문의 에서는 args를 통한 매개변수 전달과 관련된 궁금증에 답하고 있습니다. 비록 @annotation 지시자의 사용과 직접적인 관련이 없을 수 있지만, AOP에서 매개변수 전달 방식을 이해하는 데 도움을 줄 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.