Java Bean和Enterprise Java Bean之间的区别?
它们是不同的还是可以互换的? 如果他们不同,那么是什么使他们彼此不同?
JavaBean只是一个普通的旧Java对象,符合某些约定,包括使用访问函数(getFoo / setFoo)来访问成员,提供默认构造函数以及其他一些东西。
Enterprise JavaBean是Java EE应用程序服务器中的一个组件,具有多种风格,其细节因您所讨论的Java EE版本(或更具体而言,涉及哪一组特定的EJB规范)而异。
JavaBeans最初主要是为了在构build工具中使用,通过提供一个已知的接口,可以通过工具中的自省来查找。 然而,他们很快变成了相当于一个宗教的东西。
Enterprise JavaBeans旨在为通用容器内的企业应用程序提供封装的业务逻辑,这些容器提供诸如会话pipe理,安全性,资源池等作为服务的内容,从而允许业务逻辑被这些交叉问题(相对)所污染。 (不pipe他们是否完成了这个任务,都是需要辩论的问题,因为他们最初使用起来有多困难,但是最近版本的规范使得这个更容易,但是传统的应用程序仍然是一个痛苦和悲哀可能是您可能遇到的大部分EJB。)
编辑添加:
- 您可以在这里阅读EJB API: http : //java.sun.com/products/ejb/javadoc-3_0-fr/
- 您可以在这里阅读完整的JavaBean规范: http : //java.sun.com/javase/6/docs/api/java/beans/package-summary.html
Java Bean定义为包含私有属性(数据)和getter&setter方法的类的实例。
如果你有:
私人stringmyString; 在你的类中,你应该有方法public String getMyString(); 和公共无效setMyString(stringsettingString); 在您的代码中定义。 虽然我发现把所有的东西都定义下来并不是绝对必要的, 只要事情没有中断就不要感到惊讶!
EJB(企业Java Bean)要复杂得多,它们只驻留在处理EJB的应用程序服务器(Tomcat不包含EJB)中。 有三种types的EJB:
- 会话:通常包含一些业务逻辑。
- 实体:通常与数据存储(如数据库)的接口。
- 消息驱动:从JMS接收消息。
Java bean是指只有字段的类和它们的getter-setter方法。 几乎没有业务逻辑,或者根本没有业务逻辑。 它们也被称为POJO(Plain Old Java Object)。
EJB是J2EE规范的一部分,可以用来充分利用J2EE兼容服务器的全部function,如事务,会话pipe理,安全性等(这并不意味着你不能在不使用EJB的情况下使用它们)
“Java Beans”用于存储从数据库中获取的数据的数据 ,并用作容器来在MVC模型中的Servlet和JSP之间传输数据。 一个带有setter和getter的类(容器)用于(放置)和(获取)数据。
“Enterprise Java Beans”类似于“Java Beans”, 借助不同types的EJB , 增加了 会话pipe理,安全性,事务等function
- 会话Bean
- 实体Bean
- 消息驱动豆