gpt4 book ai didi

java-ee-6 - 有没有办法在不捕获 ContextNotActiveException 的情况下知道状态是否处于事件状态?

转载 作者:行者123 更新时间:2023-12-04 20:16:28 26 4
gpt4 key购买 nike

我想知道 RequestScoped上下文当前是否在方法中处于事件状态。

目前,这就是我所做的:

@Inject private BeanManager beanManager;

public boolean isRequestScopeActive() {
try {
if (beanManager.getContext(RequestScoped.class).isActive()) {
return true;
} else {
return false;
}
} catch (final ContextNotActiveException e) {
return false;
}
}

我觉得抓一个 ContextNotActiveException有点重只是想知道范围是否处于事件状态。

您有更好的方法来了解 CDI 中上下文的状态(事件与否)吗?

最佳答案

不,我们在 CDI 1.0 中的唯一选择是捕获 ContextNotActiveException。
您的解决方案应该有效。
这实际上最终成为一个问题,因为范围实现不可用于注入(inject)。
例如。你不能只是@Inject RequestScopedContextImpl rq;并检查 rq.isActive()方法,因为我们在不知道 CDI 本身的实现细节的情况下无法访问该类。

关于java-ee-6 - 有没有办法在不捕获 ContextNotActiveException 的情况下知道状态是否处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11507109/

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