Java Bean和Enterprise Java Bean之间的区别?

Gur*_*lki 42 java ejb javabeans java-ee

它们是不同的还是可以互换使用?如果它们不同,那么是什么使它们彼此不同?

JUS*_*ION 46

JavaBean只是一个普通的旧Java对象,它符合某些约定,包括使用访问器函数(getFoo/setFoo)进行成员访问,提供默认构造函数以及其他一些类似的东西.

Enterprise JavaBean是Java EE应用程序服务器中的一个组件,它有多种形式,其细节因您所讨论的Java EE版本(或更具体地说,涉及哪些特定的EJB规范集)而异.

JavaBeans最初主要用于构建器工具,它提供了一个已知的接口,可以通过工具中的内省来查找.然而,他们很快变成了宗教.

Enterprise JavaBeans旨在为一般容器中的企业应用程序提供封装的业务逻辑,该容器提供会话管理,安全性,资源池等服务,从而允许业务逻辑(相对)不受这些跨领域关注的影响.(考虑到他们最初使用起来有多困难,他们是否完成了这个问题是一个值得讨论的问题.然而,更新版本的规范使这变得更容易.但遗留应用程序仍然是一个痛苦和悲伤的可能是您可能遇到的大多数EJB.)


编辑添加:

  • 我刚要完成一个几乎相同的答案,但是你把它击败了,所以我决定改为+1.干得好. (2认同)

sbo*_*ose 17

Java Bean被定义为包含私有属性(数据),getter和setter方法的类的实例.

如果你有:

private String myString; 在你的类中,你应该有方法public String getMyString(); 和public void setMyString(String settingString); 在您的代码中定义.虽然,我发现把所有东西都定义起来并不是绝对必要的; 如果出现问题,请不要感到惊讶!

EJB(Enterprise Java Bean)要复杂得多它们只驻留在处理EJB的应用程序服务器中(Tomcat不包含EJB).有三种类型的EJB:

  1. 会话:通常包含一些业务逻辑.
  2. 实体:通常与数据存储(例如数据库)接口.
  3. 消息驱动:从JMS接收消息.


sau*_*ata 7

Java bean指的是只包含字段及其getter-setter方法的类.几乎没有或根本没有业务逻辑.它们也称为POJO(Plain Old Java Object).

EJB是J2EE规范的一部分,可用于利用J2EE兼容服务器的全部功能,例如事务,会话管理,安全性等.(这并不意味着您不能在不使用EJB的情况下使用它们)