지시자를 통해서 @PointCut 어노테이션의 Aspect를 적용할 위치를 지정할 수 있다.
"PCD"라고 부를 수 있다.
지시자 기준 execution 리턴타입, 타입, 클래스, 패키지, 메소드, 파라미터 기준 within 특정 경로에 속하는 모든 메서드 this, target Spring bean 객체를 대상으로 함 args 특정 메서드 파라미터값의 arguments bean 인자에 등장한 bean의 모든 메소드
Annotation 의미 @target 특정 어노테이션이 있는 모든 클래스 @args 특정 어노테이션이 있는 매개변수를 받는 메소드 @within 특정 어노테이션이 붙은 모든 타입 @annotation 특정 어노테이션이 붙은 모든 메소드
가장 많이 사용하는 지시자는 execution, within이라고 하는데,
execution을 조금 살펴보자
@PointCut 어노테이션이 지정된 메소드가 적용될 범위를 지정한다.
@PointCut(value = "execution(접근제한자-생략가능|리턴타입|패키지|클래스|메서드|매개변수)")
각 패턴은 *(모든포인트)와 ..(0개 이상)으로 표현 가능하다.
생략가능한 패턴을 제외하고는 모두 지정해야한다.
지시자 중 가장 자세한 문법으로 매칭될 joinPoint를 지정할 수 있다.
정규식을 이해하고 있다면 작성하기 어렵지 않을 것이다.