Spring与EJB的区别!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring与EJB的区别!!相关的知识,希望对你有一定的参考价值。
首先,EJB是指运行在EJB容器中的JavaBean。Tomcat是Web容器的参考实现。一个完整的JavaEE服务器应该包括Web容器和EJB容器。其次,Web容器中无法运行EJB,同时所有的JavaBean都是在服务器端运行的。如果有在客户端的话,就变成C/S结构了。
目前来说除非需要分布式处理,不然基本上不需要考虑EJB。Spring能帮你处理好除分布计算之外的一切。
用javascript来进行服务器调用的话,属于Ajax的范围了。
至于购物车。一般来说有几种方法,一种是EJB中的有状态SessionBean。一种是使用HttpSession保存。还有就是自己建设一个对象池来处理。
JavaBean是领域模型的具体化类,保存了信息和业务。只有set、get方法的JavaBean是失血模型。现在来说一般多少不太欢迎这种东西。把本属于领域对象的业务逻辑都丢掉了。
实际上现在的JavaEE系统分这么几个层。
表现层(Struts、JSF等)+应用层(处理业务,可以是JavaBean也可以是EJB)+持久层(JDBC、Hibernate)。
不要在Struts的Action类中写业务代码,那是反模式。不然日后需要修改的时候很麻烦的。Action中只有流程指向和对应用层的调用。 参考技术A EJB的优势在分布式,分布式只能用EJB。Spring做不了分布式。
EJB是官方出的。Spring是非官方推出的但做一般web开发更有优势。
很长一段时间内EJB和Spring将共存。
EJB 是 Java EE 诸多规范之一,而 Spring 仅仅是一个框架并不是 Java EE。
EJB 是百分百纯血统的 JCP 官方规范,而 Spring 是民间发起的框架。
EJB 必须运行在 Java EE 应用服务器的 EJB 容器中,而 Spring 不必。
EJB 适合组件化的分布式应用,而 Spring 不适合这些。
ssh和ejb的区别
SSH(Struts,Spring,Hibernate) Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。
EJB(企业级JavaBean)是一个用来构筑企业级应用的服务器端可被管理组件, 设计目标与核心应用是部署分布式应用程序。
spring与ejb
EJB最初的设计思想考虑的是为分布式的应用服务的,分布式是针对大型应用构造的跨平台的协作计算,EJB最初的目的就是为这种计算服务的。但是软件发展到目前为止,大多数应用不需要采用分布式的解决方案,因此用EJB显得太臃肿了。Spring的出现恰恰为了解决这个问题。举个例子来说,EJB就是导弹,专门设计为打高空飞机。但是现在发现飞机不多。于是将它用来对付步兵,这个实在太糟糕了。这个时候有人发明了狙击步枪(Spring),发现对付步兵太好用了。
这两个框架有着一个共同的核心设计理念:它们的目标是为松耦合的POJO类提供中间件服务。框架通过在运行时截取执行环境,或将服务对象注射给POJO类的方式,将应用服务和POJO类“连接”起来。POJO类本身并不关注如何“连接”,而且也很少依赖于框架。
区别:
1、EJB来源于官方,一经通过,即成为了标准,Spring来源于开源社区,是由广大开发者共同参与开发的
2、EJB是重量级的,而Spring是轻量级的,倡导零侵入性。
3、分布式能力。EJB主要被用来做分布式开发,但是Spring不具备分布式能力。
联系:
二者都是容器类框架。
以上是关于Spring与EJB的区别!!的主要内容,如果未能解决你的问题,请参考以下文章
Spring 与 EJB。 Spring可以替代EJB吗? [关闭]