execution((java.util.Collection+ || java.util.Map+) *.* (..))
을 사용해 보셨습니까?
또는 당신은 사용할 수 있습니다
@Pointcut("execution(@example.annotations.Filter java.util.Collection+ || java.util.Map+ *(..)) "
+ "&& @annotation(filter) ")
public void filterOperation(final Filter filter) {
/* ... */
}
당신은 다음과 같은 방법으로 반환 값을 처리 할 수
@AfterReturning(value="filterOperation(filter)", returning="collection")
public void handlingReturnValue(final Filter filter, Object collection) {
System.out.println(collection);
}
하지만 Map
들과 Collection
들에 대해 별도의 조언을 사용하는 것이 더 좋을 것입니다 가정 :
@Pointcut("execution(@Filter java.util.Collection+ *(..)) "
+ "&& @annotation(filter) ")
public void filterCollection(final Filter filter) {
/* ... */
}
@Pointcut("execution(@Filter java.util.Map+ *(..)) "
+ "&& @annotation(filter) ")
public void filterMap(final Filter filter) {
/* ... */
}
@AfterReturning(value="filterCollection(filter)", returning="collection")
public void handlingReturnCollection(final Filter filter, Collection collection) {
System.out.println(collection);
}
@AfterReturning(value="filterMap(filter)", returning="map")
public void handlingReturnMap(final Filter filter, Map map) {
System.out.println(map);
}
이제'' "name pattern"expected "이 표시됩니다. – soc
좋습니다. 코드를 수정했습니다. – Constantiner
여전히 동일한 오류가 발생합니다. – soc