2019-05-31 17:20
@zeroabc 这就奇怪了, jfinal-4.1-src.jar 仅仅只是个源码而已,可能只是你的开发环境的个别问题,我自己机器上一点事没有
让同事帮你试一下看看,估计也没事
2019-05-31 17:01
@zeroabc 直接使用 jfinal-4.1-bin.jar , 然后源码就用上 jfinal-4.1-src.jar , 看看行不行
2019-05-31 10:20
补充一下,本文标题是《不使用统一的运行环境配置》, 要实现这个只需要修改 jfinal.bat、jfinal.sh 启动脚本中的 JAVA_OPTS 这个变量,例如:
set "JAVA_OPTS=-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0"
如果要使用不同的 JDK 版本或者路径,修改后面的 java 命令行即可,例如:
java -Xverify:none %JAVA_OPTS% -cp %CP% %MAIN_CLASS%
在 java 命令前方写上 JDK 的全路径,或者使用变量来存放路径
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(...)