2020-07-24 11:37
@Dirge 浏览一下打包后的目录:
0:根目录下是启动脚本
1:config 下是配置文件
2:lib 下是依赖的 jar 包以及项目本身源码打成的 jar 包
3:webapp 下是 web 资源,例如 html、js、css、图片等等
这个结构几近完美,是经过多年经验总结与微调后的精心设计,你不可能找到比这个更爽的打包结构
2020-07-23 20:24
@谢 应变是你的定时任务启动比 ActiveRecordPlugin 要早,而线程调度的时间不是严格确定的,所以时好时坏
解决办法是在 configPlugin 中先添加 ActiveRecordPlugin,再添加 Cron4jPlugin:
configPlugin(Plugins me) {
me.add(arp);
me.add(cron4jPlugin);
}
2020-07-23 13:54
@Dirge jfinal.com 跑了 8 年从来没碰到过 JVM 挂掉的事, JVM 挂掉一般是项目代码本身有问题,例如 JNI 调用时出现野指针,内存泄露等等
2020-07-23 13:52
@1377205950 这个是为了防止攻击者上传 jsp 文件,然后直接请求 jsp 来攻击你的系统
虽然 jfinal 是阻止上传 JSP 文件的,但攻击者有各种办法来绕过上传,所以高版本才添加了这个安全防护
添加这个防护,必然是可以通过配置打开的,在 configConstant(Constants me) 中配置:
me.setDenyAccessJsp(false);
最后,在升级文档中也有过说明:
https://jfinal.com/doc/14-1
注意看上述文档中的第 13 小节
2020-07-22 20:17
如果 MapClassService 内部本身有死循环就会死循环,例如你的 MapClassService 像下面这样来写就会有死循环:
public class MapClassService {
MapClassService me = new MapClassService();
...
}
上面的例子是极端情况,另一种情况是 A 里头 new B , B 里头 new A , 造成死循环
这种事情肯定是与 jfinal 无关的,jfinal 的 Aop.get(...) 支持循环注入,也就是 A 里头可以注入 B , B 里头可以注入 A, A 里头注入自己也是可以的,例如:
public class MapClassService {
@Inject
MapClassService me;
......
}
注意,这里说的是注入支持循环依赖,而最前面那个例子是 new 出对象,不支持循环依赖,这个是 java 语言决定的,jfinal 不管这事