2025-04-15 11:39

@北流家园网 _MappingKit 可以把字段映射拆分出来,让其调用另一个 Java 类,可在_MappingKit 保持干净只映射表关系,字段映射调用另一个类即可。 mapping_kit_template.jf 随便改造嘛

2025-04-15 11:36

@北流家园网 表越多,越应该使用这个 模式,因为映射关系在生成_MappingKit 时已经提前Java代码级配置好了。 在 JF 启动时,直接代码运行映射关系。加载速度和数据库查询后映射关系,性能完全不能比不在一个维度。

2025-04-15 09:46

@sbw Redis.use().subscribeThread 上面文章里有示例代码。文档需要仔细读呀,不然以后的编程生涯处处是坑

2025-04-14 17:22

我之前分享的https://jfinal.com/share/2768
可以绕过启动 JF 时扫表信息,提速非常明显,300张表映射时间降至1毫秒加载

2025-04-14 17:17

@sbw 那就调用不阻塞的.subscribeThread 方法注册了(里面有新启一个线程)

2025-04-09 10:17

@isddoidnoi 是的,默认就可以访问静态资源。 建议上传文件时对文件进行 uuid 重命名处理,避免中文和特殊字符导致的 链接不可用。 并且上线后使用 nginx 对静态资源进行代理,性能更好。

2025-04-09 10:02

静态资源默认是可以访问的,无需添加StaticHandler(我记得JF也没有这个类)。
如果你业务需要屏蔽可以增加自定义Handler 进行拦截。或者把upload 目录指向项目 webroot 目录之外。

“文件夹的图片地址转化为URl链接”,这个意思是获取 webapp/upload 里面全部的图片。然后拼接为 url ?
可以简单使用就是 new File("webapp/upload").list(),然后截取项目目录路径,再组织 list 集合返回就行。如果有多级目录就用递归调用拼接就行。

2025-04-02 15:43

我们有项目是自定义ISourceFactory,里面使用 fileName 前缀做判断:
class: 就用ClassPathSource。
db: 就用自定义ISource 在Db数据库中取模板。
url: 就用自定义ISource 在HttpKit中取模板。
file: 和else默认就用FileSource。

PS:如果只想实现优先找jar中的资源,没有再webapp中找。就自定义一个ISourceFactory调用自己继承的ClassPathSource覆写,判断一下就可以了

2025-03-25 18:15

在 Java 中,可以通过 main 方法的参数 String[] args 获取启动命令传递的参数。
或者 String xxx = System.getProperty(key);
* 传参注意事项:
* 1:传参规则由 java 命令行给定,与 jfinal undertow 项目完全无关
* 2:传参以 "-D" 为前缀,并且该前缀与后方的参数名之间不能有空格
* 3:参数名与参数值中间用等号字符分格,且等号前后不能空格
* 使用示例:
* java -Dundertow.port=8080 -Dundertow.host=0.0.0.0 -jar jfinal-club-release.jar

2025-03-20 20:59

@happyboy HotSwapResolver 的 hotSwapClassPrefix 内置名单就有redis.clients.

2025-03-20 12:54

@happyboy 看错了是 addSystemClassPrefix 方法。主要也是没看见你redis工具是咋写的,估计是反序列化那里没用 JF 内置的ISerializer

2025-03-20 11:10

https://jfinal.com/doc/1-5

文档的 第4 小结 配置

2025-03-17 10:12

@高兴就好 对了,这个文章的下面小木老师就有分享了 https://jfinal.com/share/2784

2025-03-17 10:10

@高兴就好 这个教程网上也太多了吧,如果不会各种配置,可以试试1Panel 控制面板,界面点点就行,网上搜索一下就看见了

2025-03-16 09:04

@张叶 看你这错误信息 [ERROR][BaseModel][findDataList] 是自建的方法,可以自行增加 try 异常捕获异常。异常时把需要的参数都拼接一起记录上,一个NullPointerException也看不出啥。
或者你把这个findDataList功能的源码贴出来,我们也能参考一下大概原因