2023-08-29 19:36

primitiveToBoxedMap 这个对象是在 static 属性中 new 出来的,按理说不可能出现 null 值情况,你那是怎么出现的问题?请描述一下整个过程

2023-08-13 18:45

代码质量非常高,已 star + fork

无意中发现个问题,反馈一下:
public class OperLogInterceptor implements Interceptor {

@Override
public void intercept(Invocation ai) {
ai.invoke();
// ACTION执行后记录日志,多线程记录,提升访问性能
new Thread(() -> writeOperLog(ai)).start();
}
....
}


以上在线程中 writeOperLog 会有问题,建议将绝大部分代码不要放在新线程之中,而只是将数据库操作放在独立线程中,因为瓶颈在数据库:
log.save();

此外,每次请求 new Thread(...) 开销会很大,可以用上 jfinal 内置的线程池:
ThreadPoolKit.execute( () -》 writeOperLog(ai));

2023-06-27 20:53

@chcode 这些一直都可以,博主的需求是批量插入数据,获得所有批量数据的主键值,而不是一个

2023-06-26 21:18

试用了一下,速度非常快,就感觉跟本地部署一样,接入 chat gpt 这么快速怎么做到的?

2023-06-25 21:48

save(...) 最终是插行一条 insert 语句,一般会执行成功,否则会抛出异常,注意看一下 insert 语句的执行结果

2023-06-18 11:35

这个实现思路不仅创新,而且优雅,以前没人这么想过

经过这个改造,去除老项目代码中的重试代码,简单、清爽

Invocation 中 index++ 的改动,证明对 jfinal 核心有深刻把控,这个地方确实是为了防止 action 被调用多次的,点赞 + 收藏 一波

2023-06-04 21:01

一直想要有这么个工具,一直没时间写,这回有现成的了,感谢分享,收藏 + 点赞一波

2023-04-20 23:14

扩展 ISource 的方式很简洁,赞

2023-04-02 23:46

越玩越深入了 RSA 非对称加密都在玩了,先赞一个

2023-04-02 16:51

指令扩展是最高级、最强大的扩展方式,实现这个功能是最好的。谢谢分享

后面 arp 中的 enjoy sql 我考将 sqlKey 更名为 sqlId,所以,建议享主将 #sqlKey(...) 指令改为 #sqlId(...),能省点代码量

2023-03-22 22:52

dao.template(...).find() 即可

2023-03-20 01:07

有位同学给了一个简单方案,配置日志将其关闭即可:
<Logger name="io.undertow.server.Connectors" level="OFF"></Logger>

2023-03-02 23:25

严格参考俱乐部给的 pom.xml 与 package.xml 文件,其中 package.xml 文件的内容完全不用动,pom.xml 中的 maven-assembly-plugin 配置不要动它

2023-03-02 23:24

@zeroabc 执行 mvn clean package 就可以了,打出的压缩包与可执行的目录在 target 目录下面的以项目名称命令的子目录下面,注意找一下