Jfinal小结

来源:互联网 发布:东德歧视中国人知乎 编辑:程序博客网 时间:2024/06/05 15:00

今天又看了一遍jfinal 2.2 manual

总结了一些细节知识,以及3个疑问1, 2, 8

1.自动加载修改后的Java文件开发过程中无需重启web server是怎么实现的?P5


2.有利于分布式场景和无数据源时使用Model是为什么?P7
因为引入了bean以后,可以使用jackson、fastjson等jar包,能够实现Java对象的序列化与反序列化,有利于分布式场景,而且使用java bean的时候,适用于无数据源场景。


3.JFinalJson将Model转换为json
FastJson、Jackson将Bean通过getter方法转换为json


4.mysql数据表名称应该使用下划线命名方式,并使用小写字母。
mysql数据表的字段名直接使用驼峰命名,这样可以令json的keyName完全一致。


5.配置JFinal为开发模式,JFinal会对每次请求输出报告,如本次请求的Controller、Method以及请求所携带的参数。


6.配置Routes有两种方式
①add(String controllerKey, Class Controller, String viewPath)
②add(String controllerKey, Class Controller)
其中viewPath是指Controller返回的视图的相对路径,即在Controller里面如果render一个文件,直接是给的文件名,其路径应该是怎样的,由这里给出。
如果,是方法②没有填viewPath参数,默认就是controllerKey


7.Routes里面还能包含@ActionKey("")注解,使得原来的访问路径,变为注解给出的
比如controllerKey的值为"/user",controller里面有方法login
要访问这个方法需要输入"/user/login"
现在在这个方法前面有注解@ActionKey("/login")
那么只需要"/login"便能访问此方法了。


8.如何利用Handler定制更加个性化的路由?P17
Handler一般有哪些功能?


9.Controller主要针对控制逻辑
而Service主要针对业务逻辑
这一点在配置全局拦截器,为控制层全局拦截器或者业务层全局拦截器可以看出。P28


10.拦截器的触发
①控制层拦截器
只需发起action请求即可
②业务层拦截器
先使用enhance方法对目标对象进行增强,然后用该对象调用配置了拦截器的方法


11.关于多数据源
jfinal可以为不同的表配置不同的数据源。
甚至存在于多个数据库中的相同结构的表,都可以配置一个Model即可,可以方便地自由切换。


0 0