1
메소드 인수가 잡기 쉽다는 것을 알고 있습니다. 그냥 @ Advice.AllArguments를 사용하고 있습니다. 조언 된 방법에서 반환 데이터를 쉽게 포착 할 수 있습니까? 내 목표는 방법을 전혀 수정하지 않고 단지 '들어오는 것과 찍힌 것을 찍어서'파일에 쓰는 것입니다. 반환 유형은 대부분 javax에서 응답이지만 때로는 프리미티브입니다.Byte Buddy 및 @Advice를 사용하여 반품 정보를 얻는 방법은 무엇입니까?
public class MyAdviser {
@Advice.OnMethodEnter
public static void onEnter(@Advice.This Object obj, @Advice.Origin String method,
@Advice.AllArguments Object[] args) throws IOException {
FileWriter fw = new FileWriter("AgentData.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
out.println(method);
out.println("Arguments : " + Arrays.deepToString(args));
out.println("---------------------------------------------");
out.close();
final Logger LOG = LoggerFactory.getLogger(obj.getClass());
LOG.info("Method name : " + method + " Object : " + obj + " " + obj.getClass());
LOG.info("Arguments : " + Arrays.deepToString(args));
}
@Advice.OnMethodExit
public static void onExit(@Advice.Origin String method) {
}
}