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功能的源码贴出来,我们也能参考一下大概原因

2025-03-02 17:25

PS: DeepSeekClient 做好单例,可以弄一个静态变量,或者弄个静态 MAP 装载不同类型的DeepSeekClient

2025-03-02 17:22

DeepSeekClient client = conf.build();

Flux<ChatCompletionResponse> flux = client.chatFluxCompletion("你好 deepseek");
SseEmitter sseEmitter = new SseEmitter(getResponse());
flux.subscribe(d -> d.choices().forEach(v ->
sseEmitter.sendMessage(v.delta().content())));
sseEmitter.complete();
renderNull();


前端 你搜 const eventSource = new EventSource('/sse'); 的用法就知道了。
可以参考一下前端部分(对于你的业务这个例子稍复杂了,可以直接问deepseek JS EventSource 的用法):
https://jfinal.com/share/2770

2025-02-26 22:42

我们项目中规定确实不用,统一 int 2 位。。。tinyint 1 位的时候是布尔

2025-02-25 18:22

@北流家园网 maven 依赖呗,可以看依赖 jar 里面的 pom.xml 就能追踪定位 reactor-core、lombok

2025-02-25 15:36

@北流家园网


<dependency>
<groupId>io.github.pig-mesh.ai</groupId>
<artifactId>deepseek4j-core</artifactId>
<version>1.4.3</version>
</dependency>

public static void main(String[] args) {

DeepSeekClient.Builder conf = DeepSeekClient.builder();
conf.baseUrl = "https://ai.gitee.com/v1/";
conf.model = "DeepSeek-R1";
conf.openAiApiKey = "码云令牌要自己创建";https://ai.gitee.com/serverless-api?model=DeepSeek-R1
DeepSeekClient client = conf.build();

Flux<ChatCompletionResponse> flux = client.chatFluxCompletion("你好 deepseek");
// 订阅并打印每个 ChatCompletionResponse 对象
flux.subscribe(System.out::println);
}

实际上自己写http工具调用也没几行代码,都可以问deepseek