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

时间:2010-03-17 05:17:48

标签: java java-ee ejb javabeans

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

4 个答案:

答案 0 :(得分:44)

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

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

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

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


已编辑添加:

答案 1 :(得分:15)

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接收消息。

答案 2 :(得分:6)

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

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

答案 3 :(得分:3)

“Java Beans”用于存储数据检索数据从数据库中用作容器来携带数据 MVC模型中的Servlet和JSP。带有setter和getter的类(容器)用于(put)和(获取)数据。

“Enterprise Java Beans”与添加功能类似于“Java Bean”,例如会话管理,安全性,交易等以及不同类型的帮助是

的EJB
  1. 会话Bean
  2.      
  3. 实体Bean
  4.       
  5. 消息驱动豆