2017-02-23 67 views
0

我有一些攔截器用於調試(性能,記錄方法的使用等)我們的JavaEE應用程序。禁用/啓用攔截器在運行時

在生產系統中,我不希望這些攔截器默認啓用,但我希望可以在運行時啓用它們(=不需要重新部署)。是否有任何可移植的方式來實現CDI實現的獨立性?如果沒有,是否有WELD特定的方式來做到這一點?

我唯一的解決方案是一個全局標誌,必須被這些攔截器使用,但仍然有進入攔截器和評估標誌的開銷。

回答

1

這是CDI/Weld在引導時做的事情之一。例如。對於一個攔截器,你實際上需要創建一個「包裝代理」,它將處理你在攔截器上做的任何額外的工作。因此,答案是 - 不,你不能在運行時這樣做。

但是,你的方法與一種國旗是完全正常的。有一個攔截器代理(它什麼都不做)的開銷真的很小,你不應該注意到。我可能會採用這種方法。

+0

好的,那麼我會用我的初始解決方案。謝謝。 – grubi