千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:南京千锋IT培训  >  技术干货  >  ejb和spring的区别?

ejb和spring的区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 21:49:38

一、ejb和spring的区别

具体区别

1.spring可以作为中间层使用,就像ejb的sessionBean,但是spring的依赖注入很强大,而ejb只支持jndi方式的注入。

2.ejb有持久层,比如jpa;spring可以无缝结合很多持久化框架,比如hibernate、jpa、ibatis,jdbc。

3.ejb支持分布式(最大特点),spring可以继承webservice来实现,也可以结合一些分布式的框架实现,但是ejb的分布式比较成熟(虽然也有一些事务相关的,无法解释的问题)。

4.spring有spring mvc提供web层,而ejb需要结合jsf或者自己去组装struts等框架实现。

总结

首先,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中只有流程指向和对应用层的调用。

延伸阅读:

二、EJB组件的工作流程

EJB Component在部署到应用服务器上之后, 客户端就可以调用它来完成各种功能。工作过程如下:

1) 客户端首先通过JNDI服务检索Home对象。在EJB应用部署到应用服务器上之后, 容器会自动获得Home对象的信息并将其加入到JNDI中。

2) JNDI服务返回所查找的Home对象的引用。

3) Home对象的创建或者查找EJB对象。

4) Home对象将获得的EJB对象返回给客户端。

5) 客户端利用获得的EJB对象引用, 调用业务方法。

6) EJB对象获得对应bean的一个实例并将相应的业务方法调用传递给该实例。

7) Bean实例通过其实现代码, 完成相应的业务逻辑并将结果返回给EJB对象。

8) EJB对象将方法的结果返回给客户端

以上就是关于ejb和spring的区别的内容希望对大家有帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

数据的批处理和流处理有什么区别?

2023-10-14

在信息检索中检索式与提问式有什么区别?

2023-10-14

ground和floor的区别?

2023-10-14

最新文章NEW

jndi和jdbc区别?

2023-10-14

Local 变量和 Field 变量有哪些区别?

2023-10-14

Java怎么注解实体类实现数据库类型与Java类型对应映射?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>