2016-08-17 11:22

@韦甩甩 感谢支持 jfinal 发展,多多关注社区动态,近几天社区会有很大改进

2016-08-17 11:20

@韦甩甩 fastjson 转 json 时,会对所有的 getter 方法进行处理,会将这些 getter 方法的返回值进行转换,这里的 getter 是指 public Type getXxxx() 这种 public 无参 get 方法,如果有参则不是 getter,这个是 java bean 规范

2016-08-17 10:26

@Lintel 感谢分享,个人头像换一下啊,支持下社区发展

2016-08-17 09:50

把原来老版本的使用 HashMap 的 CaseInsensitiveContainerFactory 也一同分享出来哈 ^_^

2016-08-17 09:24

@IvyHelen threadlocal 可配合拦截器使用一下

2016-08-17 09:16

@IvyHelen 解决好多线程协同的问题就好

2016-08-16 23:37

@IvyHelen jfinal 升级都很平滑,一般只是改改方法名即可,内核非常稳固,自第一个版本以来几乎没变动过内核架构

2016-08-16 23:36

@IvyHelen 当然,你也可以直接在 AppConfig 中创建 public static 属性来存放对象,供全局随时取用

2016-08-16 23:35

创建一个 Kit 工具类,里面弄个 static Map mapping 静态属性,在 AppConfig 中将 DruidPlugin 等需要的对象 put 到 Kit 中去,然后就可以随时获取了

2016-08-16 23:33

JsonKit 之所以不会出现这个问题,有两个原因:
1:JsonKit 转换json 时不会调用 model 的 getter 方法,所以 getter 方法中如果存在数据库操作也不会被触发
2:JsonKit 中有 convertDept 变量能在出现循环依赖时跳出转换

2016-08-16 23:31

从两个方向检查一下:
1:Goods 这个类里面有没有 getter 方法是再次查询了数据库的
2:Goods 内部的对象有无循环关联
总的来说,造成这个错误的原因是被转换的对象之间出现了循环依赖,尤其是上述1中的getter 方法读库,并且依赖关系藏在数据中
上述2中的可能性小些,因为 fastjson 应该对内存中的依赖可以自动处理好

2016-08-16 23:25

order by 应该是不支持问号占位的,所以这个问题或许不存在

2016-08-16 15:21

简单来说这就是一个单元测试的准备工作问题, jfinal 的大部分插件是可以独立运行起来的,唯一的不同是需要自己调用一下这些插件的 start() 方法,在 JFinal web 项目中这个 start() 操作是 jfinal 主动回调的,但在单元测试时 jfinal 无法感知到,所以无法回调

2016-08-16 15:19

jfinal 2.2 手册 5.13 小节为《非 web 环境下使用 ActiveRecord》,参考这部分内容在单元测试的准备方法中启动一下 ActiveRecordPlugin 即可,相应的 EhCachePlugin 也是同样的启动方式,即手动调用一下:ehcachePlugin.start() 方法

2016-08-16 10:35

扩展一下 IErrorRenderFactory 接口,然后通过 me.setErrorRenderFactory(...) 可以接管所有 error view