追随Java
简单的事情重复做,就会产生累积效应!
posts - 260,  comments - 338,  trackbacks - 0
                       选择 Spring+Hibernate EJB3还是POJO + JDBC呢?
    刚开始做项目的时候我们什么都没有,没有JAVA,没有数据。用户的数据存放到那呢?慢慢的,就出来了关系数据库,SQL也就诞生了。有人 说:“让JAVA访问数据库,JDBC诞生了。"有一些人说JDBC是好的,但也有人说JDBC是不好的,所以容器管理EJB出现了。有人说,J2EE容 器不好,POJO又复兴了。实体BEAN的性能不怎么好,比较慢并且很重;Hibernate出现了,人们可以忘记SQL了,因为它不太符合人们的习惯。 有人说,J2EE是不好的,他从J2EE中分出一个Spring的框架。有一半的人说没有什么事情是好的,他们创建了很多的JAVA框架。一个对java 不是很熟悉的人说:”我不舒服很疲惫,那么多的东西要选择,我将回到JAVA EE中。”
    一些企业级的JAVA商店是使用J2EE应用服务器和EJB2.X创建的,它们的结合建立他们的应用是过度了些(杀鸡用牛刀),觉得去选择另 外的一些框架。Spring框架和Hibernate框架的结合似乎是j2ee的一个合理的选择,但是他们的组合是jee一个轻量级的架构,尤其当非常简 单的EJB3.0是可以使用的。
    依我的观点来看,不仅Spring/Hibernate的组合,或者它们单独使用都是非常好的框架。可以重复使用它们的组件,非常轻便的。
    Spring框架是一些组件的集合它们能够单独的使用,而且你也可以一起使用它们通过添加XML文件。如果你就这样做那么你就会要使用很多的XML。如果你单独的使用Spring框架的任意组件,它都是轻便的。
But since it takes two to tango,it's as if you're pulling a tiny roll of thin wire out of your pocket (a.k.a. XML),which becomes heavyweight because wires tend to twist and create a mess.(那位帮我完成?谢谢!)
    关于Hibernate,我不能够肯定为什么那么多的人把它当做首选。我明白一个企业架构将使用它,投资一个新的设计在许多的商业应用,迫使 更多的企业把它作为标准去实现数据持久化。如果你是开发一个典型的CRUD的应用,尤其当你已经在使用它而且数据库没有完全设计出来,为什么更加为 HIBERNATE而担心呢?SQL是你受惊吓了?
    Take an application built on Spring components interconnected with thin wires, put Hibernate on top of itwith wires of a different diameter, and the maintainability of your application will decrease while hard- to-find bugs make themselves at home in your application.(那位帮我完成?谢谢!)

     最近的3,4年,许多的人对EJB是愤怒的,把它作为一个多余的有着许多繁琐的XML描叙文件的复杂框架。现在EJB3.0,使用注释,视图在一次的去吸 引企业级开发员。这不是那么容易的,EJB给他们是一个不好的映像。当你用Spring/Hibernate取代EJB时,你不要欺骗你自己,它没有使你 的开发容易许多。

    我相信在单独的POJO的环境中他们没有什么不了解的,知道怎样去执行特定的功能(例如,发送消息,事务管理,基于提供的SQL创建好的报 表,一些财经领域的过程【model some financial process】,查找最好的线路,等等)。仅仅传递一些必须的参数到一个黑合中,返回结果,无论你想要什么。Ioc和依赖注入不是新鲜的事情,它工作的 非常好。十多年以来,我一直使用它(不知道它将来的名字)在PB的应用中。它出现在事件驱动程序中。我是创建用户对象关于用户事件。无论谁想传递一些信息 到这个对象将激活一个用户事件,这个事件将携带数据注入到正确的对象中。look,ma!,no, wires!,今天,我同样的在ActionScript3中使用。停止配置(stop wiring),仅仅写一些代码业务应用的需要,一个新的应用忘记那些配置。不要忘记那些可以再度使用的组件。
    今天,Spring也许是JAVA中最好的框架之一。它有一个缺点,那就是它是一个框架(可能说它不是一个标准吧)
    Hibernate提供一个缓冲对象。好的,让我们使用它,整个工作都不需要安装什么。在某处获取一个缓冲组件,准备你的行动,传递所有需要 的参数构造你的对象。Stop wiring(停止配置),返回到程序。。联合SQL,JDBC,缓冲(如果有必要)的知识,和一个分页组件(如果
有必要)它能取得更多。
    在我新介绍的一些JAVA程序员,我问他一个问题:“谁知道怎样从数据库表中删除重复的数据”。没有一个人知道。当我问题同样的问题在论坛 上,一些JAVA程序员很自信的回复这是关于HIBERANTE,首先你不能重复的创建。非常的谢谢。关于一些现实的经验。如果数据库表脏的数据已经存 在,并且弄脏每天都在发生。你不要欺骗自己了,学习SQL吧。

    如果你想写一个简单的应用,不要寻找一些轻量的第三,第四方的框架开始。你的业务逻辑在POJO中,你的数据访问在DAO中。保持它是简单的。需要事务吗?找一个事务管理。需要可是升级吗?考虑使用异步消息在两个组件之间。
    
     Floyd Marinescu 在它的《开始EJB3》的绪言中说到。EJB3是一个非常重要的里程碑为规范。它不仅意味着容易使用,而且它是首先(在作者看来)这个规范创建,开发群体 的证明他们所需要的,使EJB3是最佳实践的标准话,取代原来的委员会所定制的。

    他是伟大的,来自一些诽谤的社团的坏家伙最终他们充满着快乐,他们实际上是专家,具有最佳的实践和许多开源框架的思想。
    有人说,回到JEE的标准,他创建一个JAVA EE1.5并且非常好。它不是最好的,但是给人们一个共同点,孕育了一个新的企业级应用。

BTW:原文来自(http://java.sys-con.com/read/299903.htm),翻译的巨烂,希望能拍砖,指出错误。我也是尝试着翻译一些文章,希望能够提供自己的阅读能力。

posted on 2006-11-17 16:53 Harryson 阅读(1841) 评论(3)  编辑  收藏 所属分类: SoftwareEngineering

FeedBack:
# re: [翻译]选择 Spring+Hibernate EJB3还是POJO + JDBC呢?
2007-02-21 01:17 | sunflower
刚出来混,个人觉得使用Spring里的类越多(比如HibernateTemplate),对Spring的依赖越大,越难脱离Spring.^-^.
不过,Spring的确给我们很方便的实现.  回复  更多评论
  
# re: [翻译]选择 Spring+Hibernate EJB3还是POJO + JDBC呢?
2007-02-21 01:19 | sunflower
感觉把Spring当成一个公用包来用会好点。  回复  更多评论
  
# re: [翻译]选择 Spring+Hibernate EJB3还是POJO + JDBC呢?
2007-10-12 13:03 | qq:445104284
我今天做过测试,已经找到答案:
myql里面的一个表有记录10万,从里面找出一条记录:
spring2.0+hibernate3.2(Spring设置了c3p0缓冲池---提高性能,并且使用声明事务)用的时间大约是4000ms,
ejb3.0用的时间大约是600ms.
你们说,spring还是ejb3.0呢?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(10)

随笔分类(319)

AJAX

Coffee House

CSS

Java

JavaScript

Open Source

ProjectManagement

友情Blog

最新随笔

最新评论

阅读排行榜

评论排行榜