Получение внутренних методов приводит к переменным данным с использованием Spring Boot Aspect @After Advice ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Получение внутренних методов приводит к переменным данным с использованием Spring Boot Aspect @After Advice

Сообщение Anonymous »

Я хочу захватить данные, возвращаемые методом, внутри метода, по которому я хочу дать совет. Я хочу использовать @After, потому что этот метод может генерировать исключения, и я хочу захватывать эти данные независимо от того, является ли «родительский» метод успешным или завершается с ошибкой и завершается с исключением.
Я пробовал различные реализации pointcuts, но не знаю, как настроить подпись аннотации @After. Документация Spring/другие примеры, которые я прочитал, не имеют «расширенного» примера, подобного тому, о котором я прошу. Они более «базовые».
В ОСНОВНОМ это: AspectJ: перехват возвращаемого результата метода внутри другого метода
Но с @After, а не с @После возвращения. @After не поддерживает те же параметры, что и @AfterReturning.
Любые примеры были бы фантастическими, спасибо.
Код класса приложения:< /strong>
package mycode.application;

import class.from.external.jar.ExternalClass;

public class MyClass{
@Autowired
ExternalClass ec;

public ResponseObj method1(RequestObj reqObj) throws Exception {
Object obj;
ResponseObj retObj;
// some code
obj = ec.someMethod(reqObj);
// some code
try{}catch(Exception e{};
return retObj;
}
}

Код класса аспекта:

package mycode.aspect;

import java.util.List;

import * (all the stuff we need to import)

@Aspect
public class MyAspect {

@After("execution (* mycode.application.MyClass(..)")
public void afterMethod1(JoinPoint joinPoint) {

//the execution signature works great to get in here, but I can only get
// args/return object from the joinPoint.
//I want to use the data from obj returned from called method inside method1
//obj = ec.someMethod(..)

);
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... fter-advic

Вернуться в «JAVA»