2020-11-09 16:42

IDEA 用上热加载开发更快,谢谢分享

此外,新版本 jfinal 添加了路由扫描,超爽的

2020-11-06 12:58

这个是 undertow.ioThreads 配置以及 undertow.workThreads 配置指令的线程个数,其中前者是 io 线程,负责 io 操作。 后者是工作线程,负责调用你的 controller

这个是典型的线程池,可以避免当请求过来以后临时创建线程,也避免线程用完以后销毁线程

以上线程数到达一个数量以后就不会再增加了,这个与配置有关

以上线程在最开始的时候各自只有一个,随着请求的到来会不断创建,并纳入到线程池的管理之中

2020-11-06 10:53

@ThreeX getPara() 不带参就可以获取了

2020-11-05 21:47

主键值已经有一个 11 存在了,错误很明显

2020-11-05 12:17

注意一下 undertow.resoucePath 的配置

我看到你的项目有一个 epay-paren,猜测你是 maven 多模块项目,注意看文档:
https://jfinal.com/doc/1-5

undertow.resourcePath=webapp, {修改为自己的项目名}/src/main/webapp, src/main/webapp

2020-11-04 21:23

可以直接使用 PropKit.getInt(...) 来转换 int 数据

此外,使用 jfinal 4.9.02 版本,PropKit.get(...) 得到的值无需 trim() ,因为在底层已经 trim() 过了

2020-11-04 15:39

这方法挺独特,第一次见,超赞

2020-11-04 10:45

配置 https 的时候, 要么配置 nginx 代理,要么配置 jfinal undertow, 不能两者都配置

方案一,通过 nginx 代理 https:
1: 专心配置好 nginx,你当前的配置应该没问题
2: jfinal 项目专心走 http,不要理会 https 的事。 假定 http 跑在 8080 端口
3: nginx 的 proxy_pass 代理到 http 的 8080 端口上去

方案二,直接使用 jfinal undertow 的 https:
1:按照文档进行配置:https://jfinal.com/doc/1-4
2:生产环境端口号使用 443
3:要注意请求是直达 jfinal undertow 的 443,中间不能再有 nginx 代理存在,无论这个代理是走的 http 还是 https,都不能有

如果你的服务器要同时跑多个项目,建议用 nginx 代理方案,否则可以用方案二

2020-11-04 09:36

NullPointerException 这个异常,单步调试一下,定位是哪个对象为 null 引起的

2020-11-03 15:00

@d小布 将源码下载下来才可以,eclipse 下载源码的方式是按住 ctrl 键,然后点击 jfinal 的某个类即可

2020-11-03 11:47

补充一下,Model 自动切换数据源的原理:
1:arp = new ActiveRecordPlugin(sqlite,druid) 建立了 arp 到 druid 数据源的关联

2:arp.add(..., modelClass) 建立了 arp 到 model 的关联

3:在 model.find(...) 的时候先是能找到 arp , 然后通过 arp 找到 druid 数据源

2020-11-03 11:45

异常信息:java.lang.RuntimeException: dao 只允许调用查询方法

dao = new TestConfig().dao();
上面的 dao 对象只能调用查询方法,不能调用 use(...) 方法,因为这个 dao 是全局共享的,如果允许 use(...) 的话,多线程环境下,会造成混乱

TestConfig.dao.use(sqlite).findAll() 改成:
new TestConfig().use(sqlite).findAll();

也就是说 Model 的 use , 临时 new 出来使用。 因为对于 Model 来说,切换数据源本来就是自动的, 绝大部分情况下无需 use(...) 来切换

use(...) 方法在 Db.use(...) 中用得多,因为 Db + Record 无法自动切换数据源, 需要主动调用 Db.use(...) 来切换

2020-11-03 11:04

DruidDataSource 换成 DruidPlugin 试试

2020-11-03 10:49

此外, arp.addMapping(...) 这类代码不需要手写,全交给生成器自动生成

首页右侧下载 jfinal_demo_for_maven.zip,里面有生成器,拿过来改改三个参数即可使用

2020-11-03 10:49

在 arp.start() 之前,先要 druid.start()