2018-05-28 10:56

@snakelenas 回看了你以前的贴子,发现很久以前你还提过一个 JFinalJson 的性能问题,后来改进过了, 感谢你的建议

以后碰到啥问题,一定要提出来

生成级链属性的这个分享,目前的需求量还不够大,如果后续需求很强烈的时候会考虑添加这个功能

2018-05-28 10:12

这个 API 在 RedisPlugin 中没有加进去,可以稍微写点代码来实现:
1:Redis.use().getJedis() 获取 Jedis 对象
2:通过 Jedis 调用上的订阅发布方法实现功能
3:最后别忘了在 finally 块中调用一下 Jedis.close() 回收资源

如果这个方法要经常用,建议添加一个 RedisKit 工具类,里面添加工具方法,方便随时使用

2018-05-28 09:52

@lyq027 啥意思, show me the code

2018-05-27 22:43

@山东小木 Writer 一开始是用的 java.io.Writer ,后来改成自己的带有缓冲区的设计 com.jfinal.template.io.Writer,沿用了 java 的方法原型

2018-05-27 22:13

@山东小木 setExprList 的 if 可以再省点代码,可去掉所有 null 的赋值,例如:

if (paraNum == 1) {
this.urlExpr = exprList.getExpr(0);
} else if (paraNum == 2) {
this.urlExpr = exprList.getExpr(0);
this.portalIdExpr = exprList.getExpr(1);
} else if (paraNum == 3) {
this.urlExpr = exprList.getExpr(0);
this.portalIdExpr = exprList.getExpr(1);
this.autoLoadExpr = exprList.getExpr(2);
}


outputNothing() 这个方法内部可以留空,什么也不写,因为 writer.write("") 等价于啥也不输出

2018-05-27 22:05

有个小建议,writer.write 方法可以调用多次,避免用加号来连接字符串,可以提升性能

因为 jfinal enjoy 的 writer 内部是全程使用缓冲区的,会避免整个过程内存分配,大大在提升性能

2018-05-27 22:03

总体上来说,保障 key 的唯一性就可以了,参数直接 toString() 以后做 md5 是一个很好的办法,比 md5 更快的办法是直接使用 StrKit 中的 fnv64 算法来做

更改缓存可以简单让这个 cacheName 失效就可以,如果要精确控制 page 里头的某个 model 会很麻烦,不建议这么做

2018-05-27 21:57

看了一下代码,有一定的复杂度,但代码很精炼工整,博主功力很深啊

感谢你的分享,点赞 + 收藏

2018-05-27 21:53

@麻言 一直用 getPara 就可以了, HttpKit.readData(....) 仅用于 HttpClient OkHttp 这类 http 客户端将数据放在 http 请求体中的情况

2018-05-27 21:51

访问速度超快,赞一个

2018-05-27 21:50

分享越来越多了,jfinal 社区有希望了,感谢分享

2018-05-27 21:18

很高端的玩法,点赞收藏,感谢分享

2018-05-27 14:55

@snakelenas 在分享频道分享下哈 jfinal.com/share

2018-05-26 23:03

信息不全,无法精确定位

有一点可以知道,这个异常是因为你在模板中使用 value[index] 时这个 index 下标越界造成的

2018-05-26 23:01

补充一点,这个问题与是否是 jfinal 3.4 版本,绝然无关

因为与启动有关的代码已经三年以上没有动过了,是绝不可能有关的