[英]Java Persistance Application Stateless vs. Stateful
我是 JPA 新手,无法理解无状态和有状态之间的用途和区别。
有什么经验吗?
问候,海瑟姆
Stateless和Stateful是 EJB Session Bean 的概念,而不是JPA 的概念。
注意: JPA 是 EJB 规范的一部分,但可以单独使用,也可以在 EJB 容器之外使用。 这通常是造成混淆的原因。
编辑:一个有用的 SO 线程, Why Use Stateful Session Beans 。
“有状态”和“无状态”是会话 bean 的属性。
会话 bean(简而言之)提供了一种在应用程序服务器上调用方法的方法。 bean是java类的一个实例。 通常,在远程方法终止(并返回结果)后销毁 bean。 那些 bean 是“无状态的”。
可以(但很不寻常)向 bean 添加字段和属性,以便客户端可以在服务器上“创建”此实例并将其用于多个操作。 这些 bean 是“有状态的”(应该避免)。
我认为部分混淆是 Java Persistence API 是 EJB3 规范的一部分,有时似乎可以与 EJB 互换使用。 直到我第一次拿起Pro EJB 3: Java Persistence API之前,我才真正理解这一点。 看看http://en.wikipedia.org/wiki/Enterprise_JavaBean它似乎提供了关于这个主题的很好的概述。
基本上,如您所知,Java 会编译内容,然后您会在运行时看到应用程序,如果在类加载器之后一切顺利并避免执行阶段错误等等,当您将变量、对象等存储在 RAM 等任何地方时或当用户与您的应用程序交互时,数据库和这些数据可能会发生变化,然后您开发了一个有状态的应用程序,如果您认为您的代码逻辑中没有任何动态(可以重塑应用程序行为的东西),那么您将要开发一个无状态应用程序。
简而言之,有状态应用程序意味着在运行时动态更改类属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.