EJB 是基于哪些技术实现的?并说出SessionBean 和EntityBean的区别 StatefulBean和StatelessBea
-
正确答案:
EJB 包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT 等技
术实现。
SessionBean 在J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调
用其他EJB 组件。EntityBean 被用来代表应用系统中用到的数据。
对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体的对
象视图,或是一个由现有企业应用程序实现的实体。
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的
Session Bean 都可以将系统逻辑放在 method 之中执行,不同的是 Stateful Session Bean 可
以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean
的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就
是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的
Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个
Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面
来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗
J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状
态。
