0

我有一些拦截器用于调试(性能、方法使用记录等)我们的 JavaEE 应用程序。

在生产系统中,我不希望默认启用这些拦截器,但我希望有可能在运行时启用它们(=无需重新部署)。是否有任何可移植的方式来独立于 CDI 实现?如果没有,是否有任何 WELD 特定的方法来做到这一点?

我唯一的解决方案是那些拦截器必须使用的全局标志,但仍然有进入拦截器和评估标志的开销。

4

1 回答 1

2

这是 CDI/Weld 在引导时所做的事情之一。例如,对于拦截器,您实际上需要创建一个“包装代理”,它将处理您在拦截器上的任何额外工作。因此,答案是 -不,您不能在运行时这样做。

但是,您使用某种标志的方法非常好。拥有一个拦截器代理(它什么都不做)的开销真的很小,你不应该注意到。我可能会采用这种方法。

于 2017-02-23T11:36:49.043 回答