EJB无状态会话Bean和有状态会话Bean [英] EJB stateless session beans and stateful session bean

查看:102
本文介绍了EJB无状态会话Bean和有状态会话Bean的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遍历了关于有状态和无状态会话bean以及它们如何工作的各种书籍。我想知道这些ejb的实际用法以及与使用普通java类相比的优点。基本上,什么时候去无状态ejb,什么时候去有状态ejb。我想要一个实时应用程序。

I have gone through various books on stateful and stateless session bean and how they work. I want to know the real usage of these ejbs and advantages over using plain java classes. Basically when do you go for stateless ejbs and when do you go for stateful ejbs. I want a real time application.

推荐答案

此类ejb的用法通常在服务层中作为服务类。

the usage of these type of ejbs are usually in service layer as service classes.

EJB3无状态和有状态Bean实际上是POJO(带有一些注释),它们与普通类没有太大区别。

EJB3 stateless and stateful bean are actually POJO (with some annotations) and they don't have any big difference with normal classes.

但在术语上在使用方面,它们具有一些普通类中找不到的功能:

but in term of usage, they have some abilities that you can't find in normal classes like:


  • 它们可以被远程调用(例如RMI协议) 。

  • 它们可以使用数据库连接和事务之类的应用程序服务器上下文资源。

有状态或无状态:
-如果任务或过程可以在一个步骤中完成(通过单个方法调用),无状态是正确的选项
,如身份验证过程
-如果任务需要一系列方法调用(不止一个),您需要保留先前的结果才能在下一次调用中使用它们,然后进行有状态调用。
就像运送过程一样(选择商品,添加/删除然后进行交易)

http会话还是有状态?

http session or stateful?

ejbs可以在应用程序服务器中提供服务,并且它们可能具有不同类型的客户端,例如普通的swing应用程序或...,因此在这些情况下,您无法中继http会话。

ejbs can be served in application server and they may have different type of clients like a normal swing application or ..., so you can't relay on http session in these cases.

如果您的应用服务器和Web服务器不同(分布式),则不建议将数据保留在http会话中,并将其传递到应用服务器/从应用服务器获取(网络开销)。

if your appserver and webserver are different (distributed) its not good idea keep data in http session and pass/getback it to/from app server (network overhead).

这篇关于EJB无状态会话Bean和有状态会话Bean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆