1 回答

TA貢獻1824條經(jīng)驗 獲得超6個贊
您可以創(chuàng)建一個保險箱ThreadLocal并設(shè)置所需的變量,然后使用它。
public class VariableContext {
private static ThreadLocal<String> currentVariable = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return "";
}
};
public static void setCurrentVariable(String tenant) {
currentVariable.set(tenant);
}
public static String getCurrentVariable() {
return currentVariable.get();
}
public static void clear() {
currentVariable.remove();
}
}
您可以在這里或其他課程中使用它。
@Aspect
@EnableAspectJAutoProxy
public class SomeConfig {
@Around(value = "@annotation(path.to.my.annotation.here)", argNames = "specificArg")
public void doLogic(ProceedingJoinPoint joinPoint) throws Throwable {
//create local variable X for thread execution here
try{
joinPoint.proceed(); //or joinPoint.proceed(Object[]);
}
finally {
//use local variable X to do some logic
VariableContext.setCurrentVariable("someValue");
String result = VariableContext.getCurrentVariable();
}
}
}
添加回答
舉報