2017-04-04 10:11
简单回复一下这些问题:
1:action 参数自动注入的功能早在两年前就已经实现过,但在上线之前去掉了这个功能。主要是这个功能要么对用户有硬性要求,例如强制使用 JDK 8 并且还要在编译时打开保留参数名称,要么就必须引入类似于 @ParameterName 这样的注解。当然 jfinal 自己也有一个自创的方案,不过仍然觉得不满意,所以没有去实现
这个功能最核心要解决的问题是获取方法形参的参数名,spring 通过引入注解或者强制使用 JDK 8 并且设置编译参数保留住方法形参名称
此外,jfinal 是有 getModel、getBean 这类一次性注入大量属性的 API 的,或许你误以为只有 getPara
2:jfinal 目前已经有 @ActionKey 这个注解可以在 action 上指定访问路径,而且是系统启动时一次性生成映射。此外 jfinal 路由解析没有使用循环,更没有使用正则匹配,仅仅使用了一次从 map 中获取数据,以及一个 string 的 substring,所以 jfinal 的路由解析可能是所有 web 框架中最快的
3:jfinal 目前只做了最有需求的代码生成部分,而 service、controller 这部分的生成不同的开发者可能有不同代码组只习惯,jfinal 希望给开发者留下一个广泛的自由空间,况且 jfinal 是极简设计,代码量本身就少,手写点代码也不费事
此外,这里已经有了更强大的生成器:http://www.jfinal.com/project/4
4:自己实现也很简单:dao.find("select * from table"),jfinal 没去实现一来是因为太简单,二来是不提倡, select * 在阿里这样的公司是禁止的,况且 where 条件也没有,这种查询对于大部分的 table 来说是不需要的
5:日期型数据默认支持:yyyy-MM-dd 以及 yyyy-MM-dd HH:mm:ss,可以任选一种格式来组织数据,自定义日期的功能已经在备忘录中了,待添加
6:jfinal 默认不处理静态资源,而是将静态请求直接交由 tomcat、jetty 这类东东,当然你可以通过自定义 Handler 来处理静态资源
如果担心有人直接访问静态资源,在生产环境下通过有如下几种办法:
a:如果前端有 nginx,直接接管
b:如果不希望用户直接访问到静态 html,可以放在 WEB-INF 之下或者用 handler 进行拦截
2017-04-03 21:50
@heijie730 子类覆盖掉父类中的 getInMsgXml() 即可,将其中的获取 xml 的代码照搬过来,然后去掉下面这一行:
ApiConfigKit.getApiConfig().isEncryptMessage();
2017-04-03 18:07
@heijie730 getApiConfig() 这个方法是让拦截器进行回调的,不要在这个方法中写过多的东西 getInMsgXml() 之所以会有异常,是因为这个 getApiConfig() 方法就是为了在 getInMsgXml() 之前进行准备工作的
让 getApiConfig() 保持干净,想办法在别的方法中调用 getInMsgXml()
2017-04-01 21:28
@熊猫先生 直接用 jfinal template engine 会方便很多,jfinal 手册中有详细说明,10 分钟内即可上手使用