【问题标题】:Disable/Enable interceptor at runtime在运行时禁用/启用拦截器
【发布时间】:2017-02-23 09:44:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: cdi interceptor weld weld2


    【解决方案1】:

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

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

    【讨论】:

    • 好的,那么我将使用我最初的解决方案。谢谢。
    猜你喜欢
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2021-04-15
    • 2017-02-01
    • 2013-05-18
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多