今年8月29日,
Matrix发表了loryliu翻译的一篇文章《
POJO应用框架:Spring与EJB3.0的比较》。
这篇文章的
英文原文在onjava上发表后,许多读者对此文的评论火药味十足,因为大家可以看出作者袁钧涛还是比较偏向于EJB3.0的。此外,文章还隐约赞誉了JBoss,这一点更是让忠爱于Spring的读者大为光火。因为袁钧涛本身就是JBoss的雇员。
我个人觉得,袁在文中所提到的使用Spring将使代码与Spring特定的API绑在一起的看法是不准确的,程序员完全可以不使用其API。如果做到了这一点,Spring反倒比EJB 3.0更灵活,因为EJB 3.0毕竟有众多个厂商的不同版本,因此,使用EJB 3.0的话将会导致更加依赖于特定厂商。
但我看不出不使用JBoss Application Server的理由,JBoss AS、Tomcat与Hibernate均出自于JEMS,Tomcat与Hibernate在JBoss AS中得到了无缝融合。另外,EJB 3.0毕竟是J2EE的标准,尽管它还有很长的路要走。
EJB 3.0更强调其作为组件的优势,通过注解的方式在每个POJO中注入事务等功能,更加符合面向对象的思想,这些POJO也更易于在不同的环境下移植,更容易脱离于特定于Spring的XML配置文件的束缚,实现上也比配置XML文件来得更简单。
Spring的特长在于Ioc模式的完美应用,编程人员只需提供最"纯正"的POJO来实现业务逻辑,其他的事务、安全等方面的因素均可由Spring来代劳,而且是集中于一处实现全局的事务管理,耦合更加松散。
如果你喜欢JBoss AS + Tomcat + Hibernate的组合,那就好办多了,使用JBoss AS就行了。如果喜欢Spring的穿针引线的"裁缝"工作,当然也可以在JBoss AS上实现理想,甚至完全撇开JBoss,选择另外的组合。在这一点上,Spring做得非常好。
我们现在面临的选择实在是太多,Windows VS. Linux,.Net VS. J2EE,Struts VS. JSF,等等等等。现在几乎是每走出一步,往往都需要做出非常慎重的选择,这个选择很是痛苦,生怕选错了以后,回头路不好走。有一点我们不能选择,即是自己的性别,是男是女,听天由命,但都活得很好,很少有人为此要死要活的。这个最基本的底线我们都能接受,反而在身外之物上无法抉择。其实我们很幸运,可以同时使用Windows及Linux,.Net及J2EE,Struts及JSF,尽管我们不能同时既当男的又是女的。选择多了,欲望多了,反倒更累。
就像男女问题,选好一条路,认真走下去,至死不悔。当然,必要时可以做做变性手术,体会一下另一半的滋味。
分享到:
相关推荐
开源和商业实现的预发布版EJB 3.0规范已经从JBoss和Oracle等公司推出。 这两个框架共享相同的核心设计理念:它们都旨在通过隐藏底层复杂性,使开发者能够更专注于业务逻辑,而不是被复杂的框架细节所困扰。Spring和...
Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....
ejb3.0入门经典.rarejb3.0入门经典.rarejb3.0入门经典.rarejb3.0入门经典.rarejb3.0入门经典.rarejb3.0入门经典.rarejb3.0入门经典.rar
在压缩包中的"Manning.EJB.3.0.in.Action.pdf"文件,就是这本著作的完整电子版,包含了详细的章节内容、示例代码和实战指导,是学习和参考EJB 3.0不可或缺的资源。无论是对EJB感兴趣的初学者还是有经验的开发者,都...
META-INF / maven / org.glassfish.main.ejb / javax.ejb / pom.properties META-INF / maven / org.glassfish.main.ejb / javax.ejb / pom.xml javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout....
**EJB 3.0 开发指南之定时服务** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式企业级应用程序的重要组件。EJB 3.0作为其一个重要的版本,带来了许多改进,使得开发更加简化且高效...
标题"mdb.rar_EJB3.0_ejb3.0 example"暗示我们这里涉及的是EJB 3.0中Message Driven Bean(MDB)的示例。MDB是一种特殊类型的EJB,专门用于处理JMS(Java Message Service)消息,它是异步处理和解耦应用组件的理想...
压缩包中的文件如“ejb-3_0-fr-spec-persistence.pdf”、“ejb-3_0-fr-spec-simplified.pdf”和“ejb-3_0-fr-spec-ejbcore.pdf”可能是EJB 3.0官方规范的文档,分别详细阐述了持久化、简化的规范和核心EJB 3.0的内容...
它可能涵盖了从基本概念到高级特性的实例,帮助读者深入理解并实践EJB 3.0开发。 **5. 子文件解析** - **mysql-ds.xml**:可能是数据库数据源的配置文件,用于连接EJB组件到MySQL数据库。 - **WSClient**:可能包含...
《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...
### Java之精通EJB3.0 #### 一、EJB3.0简介与改进 企业Java Beans(Enterprise JavaBeans,简称EJB)是Java平台为企业级应用开发提供的一种组件模型。EJB3.0是EJB规范的一个重大版本更新,它在EJB2.0的基础上进行...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
EJB3.0作为EJB规范的重大改进,旨在简化开发流程并提高开发者效率。本文将详细探讨EJB3.0与EJB2.0之间的主要差异。 首先,EJB3.0对编程模型进行了简化。在EJB2.0中,每个EJB需要定义两个接口和一个Bean实现类,这在...
**企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式企业级应用的重要组件模型。EJB 3.0是EJB规范的一个重大革新,它极大地简化了EJB的开发过程,引入...
**EJB3.0 实例教程详解** EJB(Enterprise JavaBeans)是Java平台上用于构建企业级应用的一种组件模型,而EJB3.0作为其一个重要的版本,引入了许多重大改进,极大地简化了开发过程,降低了学习曲线。本教程由黎活明...
EJB(Enterprise JavaBeans)3.0是Java企业级应用开发的一个重要标准,它定义了如何在Java EE(Java Platform, Enterprise Edition)环境中构建可复用的、组件化的服务器端应用程序。EJB 3.0的发布极大地简化了EJB的...
在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...