나는 많은 메소드를 가진 서비스 인터페이스를 가지고 있는데, 이들은 모두 Request 객체를 취해 Response 객체를 리턴한다. 모든 요청 객체에는 공통 조상이 있고 모든 응답 객체에는 다른 공통 조상이 있습니다 (성공 플래그와 메시지 필드가 있음).메소드 리턴 타입에 접근하기위한 스프링 aop 포인트 컷 표현식
이제는 사용 권한을 확인하고 서비스 호출을 수행하고 실패한 경우 실패 코드가있는 응답 객체를 반환하는 주변 요소가 필요합니다. 문제는 다음과 같습니다. 만들려는 응답 개체의 유형을 알아야합니다. 거기에 반환 형식에 액세스 할 수있는 pointcut식이 있습니까? 아마 이런 거 겠지?
@Around(value = "execution(public *"
+ " com.mycompany.MyService+.*(..))"
+ " && args(request)"
+ " && returning(returnType)" // something like this would be nice
, argNames = "request,returnType")
public Object handleServiceCall(final ProceedingJoinPoint pjp,
final Request request,
final Class<? extends Response> returnType){ ... }
서비스를 호출하지 않고 응답 객체를 생성하고 반환해야하는 동일한 애스펙트가있는 여러 메소드에 조언하고 해당 응답 객체가 서비스 메소드에 적합한 하위 유형이어야합니다. –
그래, 그게 정확히 내가 원하는 건 –