스프링 핵심 원리(고급편)

Ch10. 스프링 AOP(구현) - 스프링 AOP 구현(포인트컷 분리)

webmaster 2022. 4. 19. 19:12
728x90

Around에 포인트 컷 표현식을 직접 넣을 수 도 있지만, @Pointcut 애노테이션을 사용해서 별도로 분리할 수 도 있다

포인트컷 분리

  • @Pointcut 에 포인트 컷 표현식을 사용한다.
  • 메서드 이름과 파라미터를 합쳐서 포인트컷 시그니처(signature)라 한다.
  • 메서드의 반환 타입은 void 여야 한다.
  • 코드 내용은 비워둔다.
  • 포인트컷 시그니처는 allOrder()이다. 이름 그대로 주문과 관련된 모든 기능을 대상으로 하는 포인트 컷이다.
  • @Around 어드바이스에서는 포인트 컷을 직접 지정해도 되지만, 포인트컷 시그니처를 사용해도 된다. 여기서는 @Around("allOrder()")를 사용한다.
  • private , public 같은 접근 제어자는 내부에서만 사용하면 private을 사용해도 되지만, 다른 애스팩트에서 참고하려면 public을 사용해야 한다
  • 이렇게 분리하면 하나의 포인트 컷 표현식을 여러 어드바이스에서 함께 사용할 수 있다. 그리고 뒤에 설명하겠지만 다른 클래스에 있는 외부 어드바이스에서도 포인트 컷을 함께 사용할 수 있다

실행

@Slf4j
@SpringBootTest
@Import(AspectV2.class)
public class AopTest {
	...
}

 

728x90