2020-09-23 16:04

设计理念决定了用户体验

2020-09-23 16:04

Db.java 中的功能使用很方便,当初制的设计理念就是一步到位,也就是一行代码解决问题,所以你会看到都是这么用的:
Db.find
Db.save
Db.template(...).find
Db.batch

2020-09-23 16:02

用大扩号占位需要配置为 slf4j,或者 logback:
configConstant(Constants me) {
me.setToSlf4jLogFactory());
}

注意要添加其依赖

如果不配置的话,可以通过 %s 作为占位字符:
log.info("name:%s,phone:%s,idcard:%s已存在!",name,phone,idcard);

因为 jfinal 默认用的 log4j ,底层用的 String.format(...):
https://blog.csdn.net/anita9999/article/details/82346552

2020-09-23 15:23

setBaseDefaultName 我记得只是指定文件名的前缀,例如:
i18n_en-US.properties、 i18n_zh-CN.properties 这两个文件使用的前缀是 "i18n"

通过 setBaseDefaultName 可以改变这个前缀,一般不用修改,你碰到的或许主要是目录的问题,你配置的是 setBaseDefaultName("i18n/i18n") , JDK 可能将这个值当成了文件名

最后,你的最后一个 i18n_zh_TW.properties 好像是缺了一个下划线

2020-09-23 15:20

@sky浪翻云 这个问题最快的解决办法是找一找 JDK 有关 i18n 的文档,里头的用法本质上都是 JDK 给定的规则,很久不玩这个不记得

2020-09-23 12:13

@鼻涕刘o0 还真是,问题问的是 enjoy 不是 jfinal。 一眼扫过去太快

2020-09-23 11:17

@rirai undertow 给了报了异常,并没有当机,说明 undertow 可以识别这类攻击, undertow 相当好用

2020-09-23 11:15

刚试了一下,可以的,你再试一试

2020-09-23 10:17

注意,这个配置是分模块的,你可以在子的 Routes 中分别配置,互不影响

2020-09-23 10:16

添加一个配置:
configRoute(Routes me) {
me.setMappingSuperClass(true);
}

如果不配置,则无法映射父类中的路由,这个是在较新版本中的改进,目的是为了提升映射的性能

2020-09-22 20:06

检查 fatjar 中的 i18n 目录是否将资源文件打进去了

此外,setBaseDefaultName 可能有问题,很久没玩 i18n , 细节不记得

最后,“为什么这里要写i18n的baseName这样写,在本地开发环境才有效?” 这些问题,其实并不是 jfinal 制定的规则,完全按照 java 官方的规范走的,jfinal 只做一个易用性封装

2020-09-22 11:42

@moyush 这个功能已经添加上了,你可以直接用上:
https://gitee.com/jfinal/jfinal-undertow/commit/5950fb2f5ef6c9aecbc2e45e0a4542ac6b5b9acb

具体用法如下:
https://jfinal.com/share/2093

注意将上述文章中的 jfinal 换成 jfinal-undertow,道理都是一样的

2020-09-21 17:11

@zzutligang 如果线程能确保在有限的时间内执行完任务,jvm 退出时顶多是多等待一段时间退出 jvm, 但有些同学碰到这种情况以为是 jvm (tomcat、undertow、jetty) 无法关闭


最后,线程的管理可以使用 java 面成的 API,极度方便,例如我在项目中的发送模板消息的线程调度:

static ExecutorService executor = Executors.newFixedThreadPool(nThreads);

public sendTemplateMsg() {
executor.execute(() -> {TemplateKit.send(...)});
}

注意,上面的 executor.execute 方法中可以传入 Runnable、Thread ,也可以直接使用 lambda 传入一段代码,如 TemplateKit.send(...);

2020-09-21 12:22

数据库字段以往用的下划线,只是历史路径依赖,并没有什么特别的优势

我在字段中用驼峰很多年了,一点问题没有,优势是显然的,字段名与 java 对象名统一为驼峰以后,写代码时更流畅了,减少认知负担,因为你脑子里只有一个驼峰,忘掉下划线

2020-09-21 12:21

数据库字段以往用的下划线,只是历史路径依赖,并没有什么特别的优势

我在字段中用驼峰很多年了,一点问题没有