在现在的项目中我们使用了spring + hibernate + struts的架构,在享受aop, orm, ioc, di带来的种种便利的同时,我们亦遇到了很多莫名其妙或者说刻骨铭心的教训,今天先整理两点,日后继续补充 经验一:时刻牢记,spring、hibernate对对象 进行了动态代理,尽量不要试图在动态代理后的对象上进行反射,尤其是field! 不管是hibernate的orm还是spring的声明式事务管理,都对原来的pojo、dao进行了动态代理。虽然s、h“号称”动态代理做得天衣无缝且无色无味,但是,那只是在“绝大多数情况下”,如果想对动态代理后的对象进行反射,麻烦便来了,代码片段: public static void setCreditInfoStatus(CreditInfo info, CreditType type, CreditValidateStatus status) { … Field[] fields = CreditInfo.class.getDeclaredFields(); for (Field f : fields) { if (f.isAnnotationPresent(Credit.class) && f.getAnnotation(Credit.class).value() == type) { read more
烫手的
- 生活,就是一个期待跟着一个期待 - 被踩了 6,369 脚
- 悼念该悼念的,记住该记住的,知道该知道的 - 被踩了 1,569 脚
- 解决android 2.2下无法更新gmail、voice search、google search、street view - 被踩了 1,230 脚
- 关于 - 被踩了 1,113 脚
- 死于青春 - 被踩了 1,057 脚
近期评论
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《请教新浪》
- 牛肉丝 发表在《Sina,I服了U》
- 牛肉丝 发表在《一路走好》
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《猜想:互联网ID,“死号”判定与回收》
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《Sina,I服了U》
