Mam interfejs usługi z wieloma metodami, z których wszystkie pobierają obiekt żądania i zwracają obiekt odpowiedzi. Wszystkie obiekty żądania mają wspólny przodek, a wszystkie obiekty odpowiedzi mają inny wspólny przodek (który ma flagę sukcesu i pole komunikatu).Wyrażenie wypukłe aop sprężynowe, aby uzyskać dostęp do metody zwracania typu:
Teraz chcę mieć aspekt, który sprawdza uprawnienia itp., Wykonuje wywołanie usługi i zwraca obiekt odpowiedzi z kodem błędu, jeśli coś się nie powiedzie. Problem polega na tym, że muszę wiedzieć, jaki typ obiektu Response utworzyć. Czy istnieje wyrażenie skrótowe, które daje mi dostęp do typu zwracanego? Coś w tym stylu, być może?
@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){ ... }
A więc chcesz doradzić kilka metod o tym samym aspekcie, które czasem muszą produkować i zwracać obiekt odpowiedzi bez wywoływania usługi, a obiekt odpowiedzi musi być odpowiedniego podtypu dla metody usługi? –
tak, dokładnie to chcę –