devMode配置后开发环境与生产环境有哪些区别?

        一直对devMode的配置项不甚了解,默认把开发环境配置成true,生产环境配置成false。

        然后在开发过程中遇到了几个槛,举个栗子:

        

        1.使用freemarker,devMode=fasle的情况下,freemarker有缓存,生产环境改html代码都不会生效,得重启才行,最早刚接触jfinal和freemarker写项目的时候,我还以为是我把生产环境折腾坏了,各种解决不了(心好方).. 后来在DreamLu的指导下,添加了这行代码解决。

me.setFreeMarkerTemplateUpdateDelay(0);


        2.  JFinal action report  开发阶段最常见的控制台输出了。

7D770E88-4E76-4FB4-919E-60A8A76BA3B9.png

最近在跟app客户端联调接口,客户端丢了一串json问我出了什么问题。

like this:

4F92912E-4363-496F-A4BA-627337DD4500.png

屁颠屁颠连上生产环境打开linux日志一看,当时就懵逼了!说好的JFinal action report 呢?70B95764-4988-4373-9EA4-813AC23BC0CB.png

这怎么定位... 然后就开始找为什么没输出..是不是logback哪里配置错了。然而怎么看都没发现有问题。 就开始从git上翻历史代码,一段段时间下载下来,打包丢服务器上看看有木有输出JFinal action report,

最终定位了2个历史版本,然后一行行去比对... 最终发现是devMode改成了false..


修改回true后,感觉好多了-,-

DBDB2783-EBE2-445E-A68E-E626822B9CBB.png


最近遇到的2个折腾的比较久的问题,

我对项目中能预期到的异常都进行了处理,分配了异常代码,所以就没有输出错误堆栈。这种使用下,JFinal action report就非常有用了,我觉得其他日志都能省,这个真不能省,对于出问题的定位非常有帮助。


评论区

JFinal

2016-09-13 18:07

freemarker 的默认缓存时间是 3600秒这个没在文档中说明,后续会被充下文档,这个默认值在 com.jfinal.core.Const 中配置的:
int DEFAULT_FREEMARKER_TEMPLATE_UPDATE_DELAY = 3600; // For not devMode only

由于在开发的时候希望当时就看到页面改变的结果,所以 devMode 为 true 的时候这个值为 0,而生产环境,如果 freemarker 不加这个缓存,客户端每次请求都要对页面进行解析、建立 AST 等动作,非常耗时,所以 jfinal 为生产环境 devMode 为 false 时给定了一个默认的缓存时间

JFinal

2016-09-13 18:07

此外,linxu 日志的内容看不到,无法判断你说的问题的什么,希望再编辑一下这个贴子补充一下,你用的是 jfinal 2.2 还是什么版本?

l745230

2016-09-13 18:15

@JFinal 波总回复的太快了~~ 我才编辑一半又发出去了

JFinal

2016-09-13 18:30

@l745230 我感觉这个贴子是分享,不是问答哈。其实 devMode 没做多少事,主要区别是 devMode 下有 jfinal action report 输出,另外就是 freemarker 在开发模式下没缓存

热门反馈

扫码入社