1
스프링 AOP 트리거를 처음 사용합니다. 내 코드에 다음과 같은 pointcut 트리거가있다. 첫 번째 포인트 컷 트리거 (com.src.a()) 만 작동하고 아래의 나머지는 4 개의 모든 pointcut가 정의 될 때 트리거되지 않습니다. 그러나 4 가지 중 하나에서 하나의 pointcut 트리거 만 정의하면 잘 작동합니다. 첫 번째 트리거 이후의 트리거가 4 개가 모두 정의되었을 때 작동하지 않는 이유를 잘 모릅니다. 도움 요청 중 ...스프링 AOP 포인트 컷
@AfterReturning (
pointcut = "execution(* com.src.a(..)) "
+ "OR execution(* com.src.b(..)) "
+ "OR execution(* com.src.c(..)) "
+ "OR execution(* com.src.d(..))")
public void src () throws Throwable {
....
}
감사 예브게니에서
을 (& &로 대체 'OR') 당신의 aproach에서 작동합니다. 나는 이것을 시도 할 것이다. –
OR를 &&로 대체하면 ... &&는 AND가 아니라 OR을 의미합니다 ... 그러면 모든 부품을 한번에 일치시키지 않으므로 그의 pointcut이 쓸모 없게됩니다! ... && try || (이는 OR을 의미 함). 그것들을 직접적으로 또는 명명 된 pointcuts로 정의하는 것은 중요하지 않다. 런타임 결과는 동일 할 것이다. –
동의합니다. 맞습니다. –