2018-12-26 10:28
不要用这种方式, 用一下 ehcache , 配置一个过期时间,大致过程如下:
1:用于这个功能的 ehcache 的 name 假定为 "doorLog",过期时间设置为 1 分钟
2:当用户扫码时,先去看 ehcache 的 doorLog 是否存在,如果存在则不做日志
3:如果 doorLog 不存在,则以用户 id 为 key 做一个日志,大致为:
if (CacheKit.get("doorLog", userId) == null) {
CacheKit.put("doorLog", userId, true);
log.logInfo(...) // 这里是做日志的代码
}
这里的关键就是 ehcache 中的 “doorLog" 的过期时间的配置,当过期时间一致,缓存中就没有数据了,那么前面的 if 语句就会为 true
2018-12-25 18:12
@action_dear60 jfinal 的数据库操作只对 JDBC 做了极薄封装,没有乐观锁方面的支持,建议在现有的体系下,看看哪里可以扩展一下
2018-12-25 18:00
@lyq027 这个配置还有一个巨大的好处,部署环境通常会生成一些上传文件之类的一些动态变化的数据,而你的开发环境中是没有这些数据的
这时,将这些动态内容额外配置到项目之外的目录之下,在部署的时候就不用考虑挪动或覆盖这类目录的问题了
例如项目中的 src/main/webapp/upload 这个目录是存放上传文件的,你可以将这个文件挪到项目之外,例如挪到:
/var/my-project/upload
然后配置一下:
undertow.resourcePath = /var/my-project/upload, webapp, src/main/webapp
2018-12-25 14:35
@sourceTT 你那里具体解决的代码能贴出来不? 确保 jfinal 3.6 对这里的改进是万无一失的,谢谢你的贡献
2018-12-25 14:32
@l30961171
me.setBaseTemplatePath(null);
me.setToClassPathSourceFactory();
上面两行代码,让引擎去 class path 以及 jar 包之中去找文件内容,十分方便
尤其对打入到 jar 包中发布的资源非常有用