2012-12-24 4 views
12

Mam metodę z wartością zwracaną w warstwie DAO, chcę zmienić wartość zwracaną przez spring AOP, zgodnie z różnymi wymaganiami, s, a następnie wysłać do odpowiedniej metody w warstwie SERVICE; ale nie wiem, jak to zrobić.Jak zmienić wartość zwracaną przez sprężynę aop

+1

Nie mogę ci pomóc w Spring AOP, ale proponuję opublikować kod źródłowy, jeśli kiedykolwiek potrzebujesz pomocy ze strony społeczności Stackoverflow. – ecbrodie

Odpowiedz

15

Możesz zastosować aspekt @Around do metody, której typ powrotu ma zostać zmodyfikowany. Możesz rzucić okiem na mój blog post, jak dodać aspekt Spring AOP do aplikacji Spring, a następnie napisać aspekt @Around. Użyłem tego aspektu dla Memoizing wyników metody, ale w twoim przypadku powinieneś przyjąć wartość zwracaną przez ProceedingJoinPoint.proceed(), wpisać ją do odpowiedniej klasy, następnie zmodyfikować i zwrócić.

Jeśli planujesz zwrócić zupełnie inny obiekt, to spowoduje to wyjątek ClassCastException, chyba że rzeczywisty zwrócony obiekt jest podklasą zwracanego typu.

+0

ok, wielkie dzięki – cleverUtd