2020-11-10 17:07
写一个拦截器,用一个 ThreadLocal 传递, spring boot 本质上也是在 RequestContextHolder 通过 ThreadLocal 传递的
大致代码如下:
public class RequestContextHolder implemetns Interceptor {
static ThreadLocal《Request》 TL = new ThreadLocal();
public void intercept(Invocation inv) {
TL.set(inv.getController().getRequest());
inv.invoke();
}
public static Request getRequest() {
return inv.getRequest();
}
}
然后配置为全局拦截器:
configHandler(Handlers me) {
me.add(new RequestContextHolder());
}
用的时候这样:
RequestContextHolder.getRequest().getAttribute(...);
2020-11-10 17:02
@琴海森林 你这么一说,倒真是可以的,主要是因为现在的扫描方案性能极高
不过现在已经了自动生成功能,再扫描的话必要性就低了
要知道 Model 的自动生成功能有一个重要的点就是生成 baseModel, 这个可以快速响应数据库的变动
只要是生成 baseModel 的需求存在, 那么顺便生成一下 model 与 tabel 的映射也就可以了
2020-11-10 17:00
@天晴 这个只在开发环境下支持,生产环境不支持
java 是静态语言,要做到你说的需求很不容易,多年以前阿里就做过这样的尝试,最后失败了
2020-11-10 16:09
在 undertow.txt 中添加配置就好:
undertow.ssl.protocol = TLSv1
具体的实现代码在这里:
https://gitee.com/jfinal/jfinal-undertow/blob/master/src/main/java/com/jfinal/server/undertow/ssl/SslConfig.java
从代码中可以看出来, 还有很多 ssl 参数是可以通过参数指定的
jfinal 官方出的东西,虽然很多都不写入文档, 但功能已提前做好了。随着你开发的深入,会发现好多功能是现成的
这是因为 jfinal 的极简设计,做到了 "少即是多"
2020-11-10 12:10
@琴海森林 社区所有资源全改成了路由扫描的用法,下载试用啊,超爽的
routes 级拦截器、baseViewPath 这些功能都还在是很爽的
还有一个爽点就是扫描速度极快,根本不比手动添加路由慢
2020-11-10 12:01
@琴海森林 功能一直是这样的, @ActionKey 顾名思义, 就是 action 的 key,这个 key 是会覆盖 controllerPath 配置的
否则应该改名叫 methodKey
jfinal 4.9.03 这个版本还新增了一个 controllerPath 共享功能,也就是多个 Controller 可以映射为同样的 controllerPath, 这个功能可以大大减少对 @ActionKey 的使用需求
2020-11-09 21:26
@990021266 如果实在找不到原因,可以事先用程序触发一次请求,让异常先抛出来。然后在用户真正请求到来的时候就没有问题了