选择 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),翻译的巨烂,希望能拍砖,指出错误。我也是尝试着翻译一些文章,希望能够提供自己的阅读能力。
分享到:
相关推荐
12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...
12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...
12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...
标题中的“hibernate包含的jar文件从spring, hibernate, ejb中抽出来的jar文件”指的是在软件开发中,为了构建一个基于Spring、Hibernate和EJB(Enterprise JavaBeans)的项目,通常需要从这些框架的库中提取出必要...
它允许开发者自由选择并整合多种技术和服务,如JDBC、Hibernate、JDO等。Spring的事务管理器可以无缝地与这些数据访问技术集成,并提供统一的编程模型。这种方式虽然不如EJB3.0那样紧密集成,但却提供了更大的灵活性...
#### 什么是 EJB3? **Enterprise JavaBeans (EJB)** 是一种基于 Java 的平台,用于构建可移植、可重用和可扩展的企业级应用。自诞生以来,EJB 就被视为一个组件模型或框架,它允许开发者在无需重新发明诸如事务...
- **Struts/MyFaces + EJB (JDBC):** 适用于需要分布式技术的大型项目,尤其是对于大并发访问量和高性能要求的场景。 - **Struts/MyFaces + Spring + Hibernate:** 更适合大多数中小型项目,提供了更灵活和轻量级...
11.3 Spring和EJB3 11.3.1 引入Pitchfork 11.3.2 从Pitchfork起步 11.3.3 通过注释注入资源 11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI ...
此外,Spring支持基于接口的编程,鼓励使用POJO(Plain Old Java Object)作为业务逻辑的实现,而不是强制依赖于特定的EJB或其他框架组件。 Spring还提供了声明式事务管理,通过AOP实现,使得开发者可以在不直接...
11.3 Spring和EJB3 11.3.1 引入Pitchfork 11.3.2 从Pitchfork起步 11.3.3 通过注释注入资源 11.3.4 使用注释声明拦截器 11.4 小结 第12章 访问企业服务 12.1 从JNDI中获取对象 12.1.1 使用传统的JNDI ...
11.3spring和ejb3 11.3.1引入pitchfork 11.3.2从pitchfork起步 11.3.3通过注释注入资源 11.3.4使用注释声明拦截器 11.4小结 第12章访问企业服务 12.1从jndi中获取对象 12.1.1使用传统的jndi 12.1.2注入jndi...
4. **EJB封装**:Spring提供对EJB的访问层和抽象,可以将现有的POJO包装在 Stateless SessionBean 中,同时保留Spring的特性,如安全管理和事务处理。 总之,Spring框架以其强大的灵活性和可扩展性,已经成为现代...
3. **声明式事务管理**:Spring允许对POJO进行声明式事务管理,无论是否使用EJB。这意味着开发者无需在业务逻辑中显式处理事务,而是通过配置来定义事务边界。 4. **数据访问抽象**:Spring提供了一种一致的方式来...
- **POJO支持**:Spring允许开发者使用普通的Java对象(POJO)来构建企业级应用,这意味着开发者无需依赖EJB容器产品(如应用服务器),而可以选择更简单、更灵活的servlet容器(如Tomcat)或其他商业产品。...
数据访问层提供了与数据持久化相关的服务,包括JDBC的抽象和对第三方数据访问框架的集成,如Hibernate、JPA等。Web层则是Spring提供的基于MVC设计模式的Web框架,同时也支持与其他流行的第三方Web框架集成。AOP技术...
第3章 Spring AOP和AspectJ支持 112 3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案...
Spring框架正是在这种需求下诞生,它在2007年首次发布,以其轻量级、基于POJO(Plain Old Java Object)的特性,极大地简化了Java应用程序的开发。 1. Spring的核心概念:IoC(Inversion of Control,控制反转)和...