Debugging 生产过程中的Wicket DebugBar/DevUtils

Debugging 生产过程中的Wicket DebugBar/DevUtils,debugging,wicket,Debugging,Wicket,当调试会话/序列化问题时,来自Wicket devutils的WicketDebugBar添加了许多有用的信息。文档建议将其添加到基本页 这种方法似乎为区分开发环境和生产环境提供了非常弱的支持。我不想将wicket devutils作为生产依赖项,我也不想用“if development”分支将代码弄乱 “Wicket”人员在实际应用中如何处理这一问题?有没有既定的模式 在本例中,我们仅在启用开发实用程序时添加它 if (getApplication().getDebugSettings().i

当调试会话/序列化问题时,来自Wicket devutils的Wicket
DebugBar
添加了许多有用的信息。文档建议将其添加到基本页

这种方法似乎为区分开发环境和生产环境提供了非常弱的支持。我不想将wicket devutils作为生产依赖项,我也不想用“if development”分支将代码弄乱

“Wicket”人员在实际应用中如何处理这一问题?有没有既定的模式


在本例中,我们仅在启用开发实用程序时添加它

if (getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
    add(new DebugBar("dev"));
} else {
    add(new EmptyPanel("dev").setVisible(false));
}

依赖关系没有那么大,我们可以让它进入生产依赖关系。

DebugBar
已经覆盖了
isVisible
。所以你什么都不用做

@Override
public boolean isVisible()
{
    return getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled();
}

这是我试图避免的代码,但我真的看不到任何像样的解决方案。我没有更好的解决方案,这段代码只会在应用程序中添加一次,这没什么大不了的。如果你真的不想<代码>如果污染你的页面,你仍然可以引入一个组件来做这件事。这更像是“只添加一次”的态度,我不喜欢。迟早有人会犯错误,并将其(或其他事情)暴露于公众面前。对于很多项目来说,这可能不是什么大问题。
DebugBar
已经在它的
isVisible()
方法中为您实现了这一点。请参阅。Imho此(默认)方法是首选方法。条件add(panel方法)对于初始化代价高昂的重量级组件非常有用。见: