2019-05-31 09:47
jfinal 高版本使用 Aop 、 @Inject 新功能完全代替了 Enhancer,所以相关文档也就改成了 Aop 、@Inject,但Enhancer、Duang 这两个工具类被保留下来,但其底层是在转调 Aop 的 API
从上可知,建议使用 Aop、@Inject,不建议使用 Enhancer
Aop、@Inject 各有优点,前者用于无法使用 @Inject 的地方,后者可以省代码,例如:
@Inject
Service service;
显然要比下面的代码要省:
Service service = Aop.get(Service.class);
尽可能去使用 @Inject ,省代码提升用户体验。 有些地方无法使用 @Inject ,这时就是 Aop.get(...) 出场的时候
@Inject 能被使用有个前提,那就是对象的创建是由 jfinal 负责的,例如 Controller 的创建是 jfinal 负责的,所以 Controller 中就可以使用 @Inject 注入业务层,由于业务层是在 controller 用 @Inject 注入的,进而在这种情况下 Service 的创建也是 jfinal 负责的,所以 Service 内部仍然可以继续使用 @Inject 一直注入下去
总有些对象的创建并不是 jfinal 接手的,例如 jfinal club 中的 AuthAdminKit , 所以它的内部就必须要使用 Aop.get(...)
2019-05-30 11:54
@wdl6949 根据文档来,model 是自动的,Db 可以使用 Db.use(dsName)
2019-05-30 00:53
jfinal 4.1 已经改进过这个地方,可以直接升级到 4.1,然后删掉你自己的添加的代码:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/render/TextRender.java
如下代码所示, setCharacterEncoding 方法调用前判断了 contextType 中是否已经设置过了 charset:
if (ct.indexOf("charset") == -1) {
response.setCharacterEncoding(getEncoding());
}
2019-05-28 21:34
@pigleter 单步调试一下 Redirect301Render.java 内部代码,记得有结果后回来反馈一下
2019-05-28 21:08
@mrbai2018 既然是没有调用 ModelRecordElResolver.init(servletContext);
那么,找到一个合适的地方,调用一下上面的代码
2019-05-28 11:03
@sky23456 restful 参考:
http://www.jfinal.com/share/230
http://www.jfinal.com/feedback/415