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
Odpowiedz
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.
ok, wielkie dzięki – cleverUtd
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