gpt4 book ai didi

java - 周围调用 : Curious name?

转载 作者:行者123 更新时间:2023-12-02 01:53:28 25 4
gpt4 key购买 nike

请求有关此拦截器注释的更多信息。为什么拦截器注解叫@AroundInvoke而不是@BeforeInvoke?

例如,我可以在操作 API 之前调用访问验证吗?如何保证在实际调用方法之前完成访问验证? VM 或 CDI 实现执行的某些操作是否不会阻止实际调用,而是并行执行此拦截器?

如果我使用 Google Guice AOP Method Interceptors ,我确信访问验证失败将决定方法调用是否开始。我如何确保 Jakarta CDI 也会采取类似的行为?

无法在规范中找到此信息

相关问题可以找到here 。但上述确切问题仍未得到解答。

最佳答案

@AroundInvoke之所以这样称呼,是因为它可以在实际调用的方法之前之后执行两者操作。看the documentation及其样本:

@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception { ... }

在该方法中您可以调用 ctx.proceed()调用目标方法(或任何其他拦截器)。当您在该调用之前执行某些操作时,您就在该方法之前执行操作,并且该调用之后执行的任何操作都发生在之后该方法被调用。因此它“围绕”该方法。

示例:

@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception {
log.info("We're about to do the thing!");
Object result = ctx.proceed();
log.info("We did the thing!");
return result;
}

关于java - 周围调用 : Curious name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69902697/

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