使用Struts 2开发应用06:开发模式

文章翻译自Struts 2官方文档

开发模式(也称为“devMode”)

部署应用到生产环境之前请关掉这个选项 - 它会暴露你的应用的敏感数据。

 

Struts 2有一个称为devMode(= development mode)的设置(可以在struts.properites文件中设置为true或者false)。当设置了开发模式,Struts 2会添加额外的日志和调试信息,这可以极大的加快开发速度。

 

你也可以在你的struts.xml文件中设置这个常量:<constant name="struts.devMode" value="true" />。

 

这时首选的方法。更多信息参考常量配置

开发模式可以做什么?

  • 设置开发模式后,Struts 2会在每次请求时重新加载你的资源绑定文件(意味着你可以修改你的.properties文件,保存它们,然后在下次请求时就会反应你的修改)。注意:这个选项也可以通过struts.i18n.reload = true独立设置。
  • 它也会在每次请求时重新加载你的xml配置文件struts.xml),你的验证文件,等等。这在测试或微调你的配置是很实用,你不用每次都宠幸部署你的应用。注意:这个选项也可以通过struts.configuration.xml.reload = true独立设置。
  • 第三点,可能设置不是广为人知的,因此是混乱的源头:它会提升调试的级别或者通常可以忽略的问题变成了错误。例如:当你提交一个不能映射到一个action的域‘sonmeUnknownField’,它通常可以忽略。但是,当你在开发模式中时,将会抛出一个异常,告诉你提交了一个无效的域。这在调试或测试大表单时很实用,但是假如你依赖请求中的不能设置到action的参数,这也会造成混乱,除非你正好在视图层使用(警告:这是不好的实践,你应该总是验证来自web的输入)。

不要忘了...

默认情况下,没有设置开发模式,因为它对性能有显著的影响,因为每次请求都会加载全部的配置。

页面渲染缓慢

在打开devMode时,假如你感受到页面渲染缓慢,通常是因为在devMode禁用了Freemarker缓存。你可以明确的设置被devMode禁用的缓存或者其他任何选项,就像下面这样:

<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.reload" value="false"/>
<constant name="struts.configuration.xml.reload" value="false"/>
<constant name="struts.freemarker.templatesCache" value="true"/>
<constant name="struts.freemarker.templatesCache.updateDelay" value="120"/>
<constant name="struts.freemarker.mru.max.strong.size" value="120"/>

就像你看到的,你可以选择打开devMode,同时也可以打开其他Struts选项。

在开发过程中,请记住使用Struts的优化选项,可以和这里的使用方式不同(尤其是缓存相关的选项)。

猜你喜欢

转载自a2429854489.iteye.com/blog/2285605