gpt4 book ai didi

java - Spring AOP 更改围绕建议的方法参数的值

转载 作者:IT老高 更新时间:2023-10-28 13:59:29 26 4
gpt4 key购买 nike

是否可以在使用 Spring AOP 执行之前根据一些检查来更改方法参数值

我的方法

public String doSomething(final String someText, final boolean doTask) {
// Some Content
return "Some Text";
}

建议方法

public Object invoke(final MethodInvocation methodInvocation) throws Throwable {
String methodName = methodInvocation.getMethod().getName();

Object[] arguments = methodInvocation.getArguments();
if (arguments.length >= 2) {
if (arguments[0] instanceof String) {
String content = (String) arguments[0];
if(content.equalsIgnoreCase("A")) {
// Set my second argument as false
} else {
// Set my second argument as true
}
}
}
return methodInvocation.proceed();
}

请建议我设置方法参数值的方法,因为该参数没有 setter 选项。

最佳答案

是的,这是可能的。您需要一个 ProceedingJoinPoint而不是:

methodInvocation.proceed();

然后您可以使用新参数调用继续,例如:

methodInvocation.proceed(new Object[] {content, false});

http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/aop.html#aop-ataspectj-advice-proceeding-with-the-call

关于java - Spring AOP 更改围绕建议的方法参数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com