public class AdviceListener extends Object
sandbox-api:1.0.10| 构造器和说明 |
|---|
AdviceListener() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
after(Advice advice)
方法调用后通知,无论是正常返回还是抛出异常都会调用
|
protected void |
afterCall(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc,
String callThrowJavaClassName)
目标方法调用结束之后,无论正常返回还是抛出异常
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
afterCallReturning(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc)
目标方法返回之后
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
afterCallThrowing(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc,
String callThrowJavaClassName)
目标方法调用异常之后
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
afterReturning(Advice advice)
方法调用返回后通知
在这个通知环节,通过
Advice.getParameterArray()拿到的入参有可能已经被方法内部改变过,不再是原有的入业务入参
在这个通知环节,你无法通过Advice.changeParameter(int, Object)来改变方法入参,
因为整个方法已经执行过了,再次改变已经失去了意义
|
protected void |
afterThrowing(Advice advice)
方法调用抛出异常后通知
|
protected void |
before(Advice advice)
方法调用前通知
通知处理与当前业务同属一个线程
通知处理失败不会影响当前业务处理结果
在通知处理过程中依然可以使用
Advice.changeParameter(int, Object)来改变入参,
也可以继续使用ProcessController来改变代码执行流程
|
protected void |
beforeCall(Advice advice,
int callLineNum,
String callJavaClassName,
String callJavaMethodName,
String callJavaMethodDesc)
目标方法调用之前
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。
|
protected void |
beforeLine(Advice advice,
int lineNum)
行为即将经过的代码行
|
protected void before(Advice advice) throws Throwable
Advice.changeParameter(int, Object)来改变入参,
也可以继续使用ProcessController来改变代码执行流程
advice - 通知信息Throwable - 处理通知错误protected void afterReturning(Advice advice) throws Throwable
Advice.getParameterArray()拿到的入参有可能已经被方法内部改变过,不再是原有的入业务入参Advice.changeParameter(int, Object)来改变方法入参,
因为整个方法已经执行过了,再次改变已经失去了意义
advice - 通知信息Throwable - 处理通知错误before(Advice)protected void after(Advice advice) throws Throwable
advice - 通知信息Throwable - 处理通知错误afterReturning(Advice),
afterThrowing(Advice)protected void afterThrowing(Advice advice) throws Throwable
advice - 通知信息Throwable - 处理通知错误afterReturning(Advice)protected void beforeCall(Advice advice, int callLineNum, String callJavaClassName, String callJavaMethodName, String callJavaMethodDesc)
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。 CALL系列事件必定是包含在BEFORE/RETURN/THROWS事件之间。
advice - Caller的行为通知callLineNum - 调用发生的代码行(可能为-1,取决于目标编译代码的编译策略)callJavaClassName - 调用目标类名callJavaMethodName - 调用目标行为名称callJavaMethodDesc - 调用目标行为描述protected void afterCallReturning(Advice advice, int callLineNum, String callJavaClassName, String callJavaMethodName, String callJavaMethodDesc)
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。 CALL系列事件必定是包含在BEFORE/RETURN/THROWS事件之间。
advice - Caller的行为通知callLineNum - 调用发生的代码行(可能为-1,取决于目标编译代码的编译策略)callJavaClassName - 调用目标类名callJavaMethodName - 调用目标行为名称callJavaMethodDesc - 调用目标行为描述protected void afterCallThrowing(Advice advice, int callLineNum, String callJavaClassName, String callJavaMethodName, String callJavaMethodDesc, String callThrowJavaClassName)
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。 CALL系列事件必定是包含在BEFORE/RETURN/THROWS事件之间。
advice - Caller的行为通知callLineNum - 调用发生的代码行(可能为-1,取决于目标编译代码的编译策略)callJavaClassName - 调用目标类名callJavaMethodName - 调用目标行为名称callJavaMethodDesc - 调用目标行为描述callThrowJavaClassName - 调用目标异常类名protected void afterCall(Advice advice, int callLineNum, String callJavaClassName, String callJavaMethodName, String callJavaMethodDesc, String callThrowJavaClassName)
在一个方法调用过程中会调用其他的方法,CALL系列的事件就是来描述这一类调用的情况。 CALL系列事件必定是包含在BEFORE/RETURN/THROWS事件之间。
advice - Caller的行为通知callLineNum - 调用发生的代码行(可能为-1,取决于目标编译代码的编译策略)callJavaClassName - 调用目标类名callJavaMethodName - 调用目标行为名称callJavaMethodDesc - 调用目标行为描述callThrowJavaClassName - 调用目标异常类名,若正常返回则为 nullsandbox-api:1.2.2protected void beforeLine(Advice advice, int lineNum)
advice - Caller的行为通知lineNum - 即将经过的代码行Copyright © 2023 Alibaba Open Source. All rights reserved.