| 程序包 | 说明 |
|---|---|
| com.alibaba.jvm.sandbox.api.listener.ext |
| 限定符和类型 | 方法和说明 |
|---|---|
Advice |
Advice.changeParameter(int index,
Object changeValue)
改变方法入参
|
Advice |
Advice.getProcessTop()
获取调用顶层通知
|
| 限定符和类型 | 方法和说明 |
|---|---|
List<Advice> |
Advice.listHasMarkOnChain(String exceptMark)
列出调用链路上所有拥有期待标记的调用通知
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
AdviceListener.after(Advice advice)
方法调用后通知,无论是正常返回还是抛出异常都会调用
|
protected void |
AdviceListener.afterCall(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc,
String callThrowJavaClassName)
目标方法调用结束之后,无论正常返回还是抛出异常
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
AdviceListener.afterCallReturning(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc)
目标方法返回之后
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
AdviceListener.afterCallThrowing(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc,
String callThrowJavaClassName)
目标方法调用异常之后
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
AdviceListener.afterReturning(Advice advice)
方法调用返回后通知
在这个通知环节,通过
getParameterArray()拿到的入参有可能已经被方法内部改变过,不再是原有的入业务入参
在这个通知环节,你无法通过changeParameter(int, Object)来改变方法入参,
因为整个方法已经执行过了,再次改变已经失去了意义
|
protected void |
AdviceListener.afterThrowing(Advice advice)
方法调用抛出异常后通知
|
protected void |
AdviceListener.before(Advice advice)
方法调用前通知
通知处理与当前业务同属一个线程
通知处理失败不会影响当前业务处理结果
在通知处理过程中依然可以使用
changeParameter(int, Object)来改变入参,
也可以继续使用ProcessController来改变代码执行流程
|
protected void |
AdviceListener.beforeCall(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc)
目标方法调用之前
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
AdviceListener.beforeLine(Advice advice,
int lineNum)
行为即将经过的代码行
|
Copyright © 2023 Alibaba Open Source. All rights reserved.