2019-12-13 11:58

在 MainConfig 中设置断点调试一下

我估计你的 eclipse 自动编译没打开,造成了改配置没编译,也就不会生效

还有一种可能是你的配置文件有两个,一个用于开发环境,一个用于生产环境,例如:
PropKit.use("config.properties").appendIfExits("config-pro.properties");

上面的代码中用到了 appendIfExits(...),如果 config-pro.properties 这个生产环境配置文件中有 user=root 配置,会覆盖掉 config.properties 中的配置

2019-12-12 16:30

@稻草人ABC 其实在文档中早已有过说明:
https://jfinal.com/doc/1-5

一定要多看文档

2019-12-12 12:33

@长虫 定时器都不管用,我估计是别的原因,要仔细排查

druid 已经默认支持保持连接,在用上 druid 以后已经很多年没有碰到过这个问题了

2019-12-12 12:32

webjars 曾经有几个人问过,博主是第一个给出完整方案的,核心在于用 Handler 接管静态请求导流到 webjars

思路清晰,代码简洁,谢谢你的分享

2019-12-12 11:39

@巨轮深港啊 占位符数量不一致在文档中有过强调

2019-12-12 11:39

这个地方的 getBytes() 针对的是前面的全英文字符,全英文字符串不用指定编码也是正常的

我估计你碰到的是别的原因,单步调试一下定位到出乱码的具体位置

2019-12-11 21:50

注意,这里的关键是通过 Redis.use().getJedis() 得到 Jedis 对象,这样就拥有了所有方法的入口,

最后别忘了在 finally 块中 jedis.close() 回收资源,否则资源泄漏

2019-12-11 21:50

建议做个工具类,大致用法如下:
public class MyRedis {
public static Type Zremrangebyscore(Xxx para) {
Jedis jedis = Redis.use().getJedis();
try {
return jedis.zremrangebyscore(...);
} finally {
jedis.cose();
}
}

然后你可以通过这个工具类去使用:
MyRedis. Zremrangebyscore(...);

2019-12-11 21:47

@巨轮深港啊 仔细调试, 我记得 AnsiSqlDialect 就用到了 takeOver 为 true 的情况,其它全是 false 的情况

2019-12-11 21:35

@chcode jfinal 4.0 版本之前一直是 cglib 实现的 Aop 代理,所以 setToCglibProxyFactory() 经历的应用场景更多,适应力更强

例如,你碰到的这种路径有空格的问题,这种情形在开发时很难想到,只能等到某位同学碰到,并且还要这位同学有追跟问底的精神,才能定位问题,才有可能在新版本中解决

所以,做一个被广泛使用的 web 框架其实是极难的,因为场景千变万化,需要长时间的打磨与积累才能成熟

jfinal 经因了 8 年多的迭代,现在已经十分成熟完善,如果 8 年前我知道要花这么多时间迭代,jfinal 应该是不会存在的

2019-12-11 21:33

@chcode jfinal 4.0 版本之前一直是 cglib 实现的 Aop 代理,所以 setToCglibProxyFactory() 经历的应用场景更多,适应力更强

例如,你碰到的这种路径有空格的问题,这种情形在开发时很难想到,只能等到某位同学碰到,并且还要这位同学有追跟问底的精神

2019-12-11 17:57

按理说 druid 会定期发送心跳给服务端,我不确定是啥原因

你为 DruidPlugin 加点配置试试, 看看这个类的源码,其中有一个 setter 方法可以配置 druid 定期向服务端发送请求,以便保持连接

2019-12-11 17:55

@巨轮深港啊 单步调试进入方法内部,看调用的哪个方法

2019-12-11 16:16

@chcode 配置一下 me.setToCglibProxyFactory() 完美解决