AroundInvoke:奇怪的名字?
AroundInvoke: Curious name?
请求有关此拦截器注释的更多信息。为什么拦截器注解叫@AroundInvoke 而不是@BeforeInvoke?
例如,我可以在操作 API 之前调用访问验证吗?在实际调用方法之前完成访问验证的保证是什么? VM 或 CDI 实现是否做了一些不阻止实际调用但并行执行此拦截器的事情?
如果我使用 Google Guice AOP Method Interceptors,我确信访问验证失败将决定方法调用是否开始。我如何确定雅加达 CDI 的类似行为?
未能在规范中找到此信息
可以找到相关问题here。但上述确切问题仍未得到解答。
@AroundInvoke
被调用是因为它可以在实际调用的方法之后 和 之前执行 both 操作。查看 the documentation 及其示例:
@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception { ... }
在该方法中,您可以调用 ctx.proceed()
来调用目标方法(或任何其他拦截器)。当你在 before 调用时,你会在 before 方法和你在 after 调用时执行任何操作发生 在 方法被调用之后。因此它“围绕”该方法。
样本:
@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;
}
请求有关此拦截器注释的更多信息。为什么拦截器注解叫@AroundInvoke 而不是@BeforeInvoke?
例如,我可以在操作 API 之前调用访问验证吗?在实际调用方法之前完成访问验证的保证是什么? VM 或 CDI 实现是否做了一些不阻止实际调用但并行执行此拦截器的事情?
如果我使用 Google Guice AOP Method Interceptors,我确信访问验证失败将决定方法调用是否开始。我如何确定雅加达 CDI 的类似行为?
未能在规范中找到此信息
可以找到相关问题here。但上述确切问题仍未得到解答。
@AroundInvoke
被调用是因为它可以在实际调用的方法之后 和 之前执行 both 操作。查看 the documentation 及其示例:
@AroundInvoke public Object intercept(InvocationContext ctx) throws Exception { ... }
在该方法中,您可以调用 ctx.proceed()
来调用目标方法(或任何其他拦截器)。当你在 before 调用时,你会在 before 方法和你在 after 调用时执行任何操作发生 在 方法被调用之后。因此它“围绕”该方法。
样本:
@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;
}