`
xihongshi414
  • 浏览: 35733 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring vs ejb——1 ejb胜

阅读更多

Spring vs. EJB   http://www.jdon.com/article/18904.html

    从scope(受众 / framework / platform)、component architecture和语义三方面对SPING和EJB进行了比较。说的比较客观。或者说是条理很清晰,思路也很对。

    一、scope方面,ejb是以事务为中心,以电力行业为例,该行业需要处理大量数据,很少有OOmodel,而是做完entity分析,交给dba去优化,以数据性能为主,这样的系统里,数据操作的粒度就是transaction,而不是object或是别的。

    component architecture意味着两个方面:component working(编写组件) 和 container working(编写容器环境),spring的IOC和AOP是用在container working里的。spring的基础是javaBean,javaBean支持完整的OO建
模,因此Spring可以适用更多的结构,domain model和别的一些。

    比较结果1spring有一个理论上普适的组件模型,但是鉴于大型应用多为transaction-oriented,那么用Spring的理由就是domain model,ejb不能提供完整的OO模型而spring可以。

    二、Component architecture有一个基本观点,就是component和context的分离,理想情况下,component只负责业务的实现,而container提供context,这个context指技术context,比如事务比如安全的支持。于是,component architecture的基本观点就是business关注点和technique关注点分离,business由component负责,technique由context或者叫container实现。那么很明确了,component architecture里有两种编程,针对component的和针对container的。

    component的复用——容器外复用EJB效率很低。而spring以重写容器为代价实现复用。

    部署——ejb的部署够复杂,但在EJB规范里有一个专门的角色来负责部署的。这里有一个调试困难的问题,这是EJB的硬伤,没办法,这甚至是组件开发的硬伤。

    打成一个war和打成一个ear有多大的区别?那么部署的差异在哪?差异在EJB的deploy description和Spring的context.xml的编写上!在用Spring开发中要有一个人来写context.xml这个人往往比较了解系统,知道什么组件用什么拦截,那个组件依赖那个,甚至会是架构师在作这件事情,那么和EJB里对系统有大局观的人来做deploy有多大区别?可能就是Xml的编写吧,我想在工具的支持下就是熟练度的问题,因此我觉得部署上spring和EJB差不多,spring不用启server,调试放便些。
    比较结果2在component architecture上,spring灵活,ejb统一完整,各胜擅长,spring的灵活以降低复用为代价,但是如果有common的技术实现,的确很好复用,但是spring+一套common的技术实现也就约等于EJB了吧?

    三、语义EJB的复用有语义保证,spring呢?贫语义,一切都要开发者自己来实现。因此,如果EJB的环境语义可扩展并且可配置(比如去掉分布),那么Spring毫无优势,标准的一致的完整的组件架构使EJB会大有作为,但是现在并没有,才有了Spring的火爆.这是一种畸形的胜利,完备语义的输给了贫语义的,问题是什么,强迫消费...谁让EJB非得强迫客户去买用不到的分布式环境的单?

    比较结果3:但是统一语义的威力不会因此掩灭,现在有两条路,spring联合os社区,制定lightweight j2ee语义集合,争取成为标准。第二,ejb实现技术语义可配置可扩展。




 

分享到:
评论

相关推荐

    10.客户端——Struts 2+Spring+EJB架构实现

    Struts 2、Spring 和 EJB 是 Java Web 开发中的三个关键框架,它们共同构建了一个强大的客户端应用程序架构。本文将深入探讨这三个框架如何协同工作,以及它们各自在企业级开发中的角色。 首先,Struts 2 是一个...

    Spring————面试题库

    使用Spring框架能够为开发者带来许多好处,例如通过依赖注入(Dependency Injection, DI)方法,能够清晰地管理对象间的依赖关系,相比于EJB容器,Spring的IoC容器更为轻量级,更适合在有限的内存和CPU资源下进行...

    struts2 + ejb3 + spring 整合了

    在本文中,我们将探讨如何将三个流行的Java EE框架——Struts2、EJB3和Spring——集成在一起,形成一个强大的企业级应用。这个整合过程对于初学者来说可能会有些复杂,但通过逐步指导,我们将简化这一过程。我们使用...

    Spring——jar详解

    1. **spring-core.jar**:这是Spring框架的基础,包含了核心的工具类和基础设施,如反射、资源加载、事件传播等。其他所有Spring组件都依赖于这个jar。 2. **spring-beans.jar**:这个jar提供了bean的定义、创建和...

    j2ee研究文集,ejb,spring

    【描述】:本文集专注于J2EE领域的核心组件——Enterprise JavaBeans (EJB) 和流行轻量级框架Spring,旨在帮助开发者掌握这两者的关键概念和技术,为你的学习和项目实践提供指导。 【标签】:J2EE,EJB,Spring ...

    EJB例子

    在提供的文件名列表中,我们可以看到ejb1到ejb5可能代表EJB的不同版本,从早期的EJB 1.x到EJB 5(实际上是EJB 3.1,因为EJB 5尚未正式发布)。myweb可能包含一个Web应用程序,该应用可能使用EJB作为其后端服务。ejb4...

    精通JSF-基于EJB Hibernate Spring整合开发与项目实践-第15章代码

    1. **JSF与Spring的集成**:如何在JSF应用中利用Spring进行依赖注入,以及如何在JSF的managed bean中使用Spring的bean。 2. **EJB与JSF的协同工作**:讲解如何在JSF页面上调用EJB服务,例如,通过会话Bean来处理...

    EJB的一个开发实例

    本文旨在通过一个具体的EJB应用系统——学校管理系统——的开发过程,探讨EJB技术的实际应用及其面临的挑战。 #### 二、项目背景 本项目的目标是开发一个学校管理系统,该系统主要提供以下功能: - 学生和教师能够...

    java高手真经 高级编程卷 光盘内容 卷1(4卷)

    服务端——EJB+MySQL架构实现 emis02(Struts2+Spring+EJB).zip //10.客户端——Struts2+Spring+EJB架构实现 emis03(EJB+MySQL+JTA).zip //11.事务——为服务端增加JTA事务管理功能 emis04(EJB+MySQL+JTA+JAAS).zip...

    java高手真经源码-EJB和开源

    本书主要聚焦于企业级Java应用中的核心组件——EJB(Enterprise JavaBeans)以及如何与开源框架SHH2(Struts、Hibernate、Spring)进行整合开发。通过深入探讨EJB和开源技术的结合,为读者揭示Java在大型项目中的...

    Spring的7大模块面试

    Spring框架的强大之处在于它的模块化设计,使得开发者可以根据项目需求选择使用哪些模块,同时,Spring的核心理念——IoC和AOP,使得代码更加解耦,提高了代码的可测试性和可维护性。在J2EE环境中,Spring框架能够很...

    java高手真经 高级编程卷 卷4(4卷)

    服务端——EJB+MySQL架构实现 emis02(Struts2+Spring+EJB).zip //10.客户端——Struts2+Spring+EJB架构实现 emis03(EJB+MySQL+JTA).zip //11.事务——为服务端增加JTA事务管理功能 emis04(EJB+MySQL+JTA+JAAS).zip...

    java高手真经 高级编程卷 卷3(4卷)

    服务端——EJB+MySQL架构实现 emis02(Struts2+Spring+EJB).zip //10.客户端——Struts2+Spring+EJB架构实现 emis03(EJB+MySQL+JTA).zip //11.事务——为服务端增加JTA事务管理功能 emis04(EJB+MySQL+JTA+JAAS).zip...

    java高手真经 高级编程卷 卷2(4卷)

    服务端——EJB+MySQL架构实现 emis02(Struts2+Spring+EJB).zip //10.客户端——Struts2+Spring+EJB架构实现 emis03(EJB+MySQL+JTA).zip //11.事务——为服务端增加JTA事务管理功能 emis04(EJB+MySQL+JTA+JAAS).zip...

    spring3.0jar包

    完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过...

    企业级EJB3高级培训PPT1

    【企业级EJB3高级培训PPT1】是面向专业人士的深入学习资料,主要涵盖了Java企业版(Java EE)中的核心组件——Enterprise JavaBeans(EJB)3的高级概念和技术。EJB3是Java EE平台的重要组成部分,它为企业级应用程序...

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part2

    精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1.第二部分。三部分全下完再解压第一部分!

Global site tag (gtag.js) - Google Analytics