选择 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 阅读(1853)
评论(3) 编辑 收藏 所属分类:
SoftwareEngineering