论坛首页 入门技术论坛

对于EJB3的一些看法(在IBM秋季沙龙上的讨论)

浏览 8292 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-09-24  
slaser 写道
SteveGY 写道
我怀疑所谓的“灵活性”是否真的有存在的必要。在ORM的方法中,运行时可变的数据表名字和column真的有大量的使用吗?是否有人很容易使用Hibernate组成复杂的自定义查询方法了?我好想记得,前几天还有人推荐team规范“禁止使用HQL”的。
在实际项目中,如果数据库设计都已经发生变化,改动java源码难道不是必要的吗?或者说修改xml会比较容易?再或者说一个表增加了3个column,java源码也是不需要改变的?到底要怎样理解hard coding?把一种基于java源程序的hard coding转移到基于xml配置文件中,就算是去除了hard coding?hard coding和“灵活性”都不是绝对的。
EJB3在使用annotation,这是一种设计选择,他们既然这样选择,还是衡量过灵活性和易用性的,除去hibernate不讲,看看最近spring的某些言论,支持EJB3已经是基本一致的看法了,想想当年spring是怎么起家的,反EJB算一面旗帜,也算一点点讽刺吧。
我一直在team规范中使用iBATIS,iBATIS for java and for .net,2种语言类型的项目都用,个人认为hibernate在跨数据库支持上还可以,其他的都不怎么样。

我一直觉得表结构不一定适合用对象表示,我认为xml描述的表结构比java实体类更为优美,所以我觉得,hibernate可不可以不要写java实体类了,直接一个hbm文件全部搞定,反正那个实体类不过承载数据而已,可以用动态对象代替。



Ofbiz 就是这样的框架,一个 GenericValue 代替所有的 VO,还比较好用。
0 请登录后投票
   发表时间:2008-09-24  
raymond2006k 写道
    
     annotation 是JDK1.5开始的一个语言级的好特性,但不能滥用。特别是在 ORM 映射,将bean发布为服务等,直接在method上写 annotation,就是一种 hard coding,通俗说就是写死的做法,如:将实体的表名写死,将属性对应的库表column写死,将发布的web service 的地址写死等, 失去了 ORM 映射配置的灵活性.

你大可以使用xml文件来覆盖annotation,EJB3是xml优先。所以一般annotation中代表的只是默认的配置,适用于一般情况下。如果有需要使用xml来写些特别的地方。个人认为灵活性更高。
0 请登录后投票
   发表时间:2008-09-24  
其实在code中注释还是比在xml中好的,xml有些泛滥了。
0 请登录后投票
   发表时间:2008-09-25  
个人感觉现在SSH中配置文件大量使用XML,有的时候是项目中的XML文件太多了,难以管理所有个人感觉注释也是一个不错的发展方向。
0 请登录后投票
   发表时间:2008-09-25  
项目大了,还是觉得annotations的方式比较方便,维护大量xml配置也是件头痛的事。
jpa,ejb3 都可以使用xml配置,但是已经没有必要了,annotation是直接写在代码上的,配置量会大大减少。
0 请登录后投票
   发表时间:2008-09-25  
ejb3比ejb2的确是一个巨大的进步,很喜欢ejb3的pojo编程风格,个人认为注释的运用可以提高生产效率。

另外,如果不做分布式、集群,还是用spring的好。jpa实现的不过是hibernate的一个子集。
0 请登录后投票
   发表时间:2008-09-25  


算了吧,hibernate的配置以前不是也有xdoclet,现在的hibernate也全面支持annotation,连spring也全面支持annotation,这是个趋势,不光ejb3什么事

前面一位兄弟说的很对,分久必合合久必分,牛人们每年总要搞些噱头才能骗钱,熟悉业务,做好商业逻辑的封装重用,做好领域对象的设计,熟悉领域驱动开发才是重点,管它们用那种orm,过分重视框架感觉本末倒置

0 请登录后投票
   发表时间:2008-09-25  
据我所知,ejb的jpa的设计者和hibernate是同一个人,sun挖过去的
0 请登录后投票
   发表时间:2008-09-25  
标题党
不懂不要乱说,无知并不有趣
0 请登录后投票
   发表时间:2008-09-25  
我长期从事电信级系统的研发维护,知道配置文件的大量存在是维护工作的一个大障碍;annotation确实是JPA的一个比较好的选择;hibernate在2个项目中实践过,无论是测试、开发都 比较麻烦;后来我写了一个pojo方式的数据库访问框架,总算摆脱这个烦恼;每个技术人员接触的领域都不一样,所以看问题的角度也不一样;EJB在电信领域的地位还是很高的;SSH不能很好解决事务分段提交的问题;
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics