2021-06-22 10:24
UndertowServer 》
doStart() 》
init() 》
configJFinalFilter() 》
Servlets.filter("jfinal", getJFinalFilter()) 》
config.getClassLoader().loadClass("com.jfinal.core.JFinalFilter") 》
.addInitParam("configClass", config.getJFinalConfig()) 》
public JFinalFilter(JFinalConfig jfinalConfig) 》
。。。servlet 》》
public void init(FilterConfig filterConfig) 》
jfinal.init(jfinalConfig, filterConfig.getServletContext()); 》
this.servletContext = servletContext;
this.contextPath = servletContext.getContextPath();
initPathKit();
Config.configJFinal(jfinalConfig); // start plugin, init log factory and init engine in this method
constants = Config.getConstants();
initActionMapping();
initHandler();
initRender();
initOreillyCos();
initTokenManager();
不扒了。大致就这
2021-06-22 10:13
UndertowServer里面有个方法:
private Class<? extends Filter> getJFinalFilter() {
try {
return (Class<? extends Filter>)config.getClassLoader().loadClass("com.jfinal.core.JFinalFilter");
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
其中 config.getClassLoader().loadClass 就是调用的HotSwapClassLoader的loadClass
然后JFinalFilter里面又会初始化各个类init方法servlet的知识点了,里面的jfinal.init等等代码,得追着读了
2021-06-07 19:21
@jfinal爱好者22 昂,明白你要做什么功能了,一般BaseService层封装查询,我都用Db + Record实现了(通用)。大部分都是取数据,如果需要用到Model的便利方法,可以Record转Model对象就可以了。
2021-06-03 21:07
@一只敲代码的猫 和请求没有关系, 可能是数据不一样,把 try{ 放在方法里的第一行再试,放大异常捕捉的作用域
2021-06-03 18:07
@happyboy 楼主ID 13990 你ID 11393 ,都是早期JF使用者。我和你赌一包辣条+一包跳跳糖,楼主是个汉子!