2010-03-17 34 views
36

¿Son diferentes o se usan indistintamente? Si son diferentes, ¿qué los hizo diferentes el uno del otro?Diferencia entre Java Bean y Enterprise Java Beans?

+1

Dupe: http://stackoverflow.com/questions/1361758/difference-between-javabean-and-ejb – Zaki

+0

Ver también: http://stackoverflow.com/questions/1163139/pojo-vs-ejb-vs-ejb- 3 – Zaki

Respuesta

39

Un JavaBean es simplemente un antiguo objeto Java que cumple con ciertas convenciones, incluido el uso de funciones de acceso (getFoo/setFoo) para el acceso de miembros, la provisión de un constructor predeterminado y algunas otras cosas como esa.

Enterprise JavaBean es un componente en un servidor de aplicaciones Java EE que viene en varios sabores, los detalles varían según la versión de Java EE de la que se trate (o, más específicamente, qué conjunto específico de especificaciones EJB estan involucrados).

Originalmente, los JavaBeans estaban pensados ​​para ser utilizados en herramientas de construcción al proporcionar una interfaz conocida que podría buscarse mediante la introspección en las herramientas. Sin embargo, rápidamente se convirtieron en lo que equivale a una religión.

Enterprise JavaBeans están destinados a proporcionar lógica empresarial encapsulada para aplicaciones empresariales dentro de un contenedor general que proporciona cosas como gestión de sesiones, seguridad, agrupación de recursos, etc. como servicios que permiten que la lógica comercial (relativamente) no esté contaminada por estos cruces preocupaciones de corte. (Si lograron o no esto es un asunto que está en debate, dado lo difícil que era usarlo al principio. Sin embargo, las versiones más recientes de la especificación lo han hecho más fácil. Sin embargo, las aplicaciones heredadas todavía son un dolor y tristemente . probable que la mayoría de los EJB que es probable encontrar)


Editado para añadir:

+2

Estaba a punto de terminar una respuesta casi idéntica pero me la ganaste, así que decidí hacer +1 en su lugar. Buen trabajo. – Fredrik

+0

Gracias. Sin embargo, me hubiera interesado al ver tu opinión sobre esto. Siempre me gusta leer las perspectivas de los demás sobre la información. –

+0

@ttmrichter: Bueno, lo cubrió todo y algunas cosas más, por lo que no valía la pena publicar mis tomas. Lo único que creo que falta es un intento confuso de describir MDB, CMP y beans de sesión, pero no estaba muy contento con el intento, así que es igual de bueno. – Fredrik

6

Java beans se refiere a las clases con solo campos y sus métodos getter-setter. Con poca o preferiblemente ninguna lógica de negocios en absoluto. También se les conoce como POJO (objeto antiguo de Java simple).

de EJB son parte de la especificación J2EE que se puede utilizar para aprovechar toda la funcionalidad de los servidores compatibles con J2EE, tales como transacciones, gestión de sesiones, la seguridad, etc. (Esto no quiere decir que no se puede utilizar éstos sin necesidad de utilizar EJB)

+0

¿Entonces un EJB es como un Java Bean extendido? ¿Con algunas características adicionales? –

14

Un Java Bean se define como una instancia de una clase que contiene los atributos privados (datos) y los métodos getter & setter.

si tiene:

miCadena cadena privada; en su clase, debe tener los métodos públicos String getMyString(); y public void setMyString (String settingString); definido en tu código. Aunque, he descubierto que no es absolutamente necesario tener todo definido; ¡No te sorprendas si algo se rompe!

Un EJB (Enterprise Java Bean) es mucho más complejo. Solo residen en servidores de aplicaciones que manejan EJB (Tomcat no contiene EJB). Hay 3 tipos de EJB:

  1. Sesión: Por lo general, contienen algunas lógicas comerciales.
  2. Entidad: Por lo general, la interfaz con un almacén de datos (como una base de datos).
  3. Mensaje-Impulsado: Recibe mensajes de JMS.
+0

Tenga en cuenta que ahora hay un servidor TomEE, Tomcat que admite EJB (y el perfil web completo): http://tomee.apache.org/tomcat-ejb.html. –

3

"Java Beans" se utilizan para tienda los datos datos recuperados de la base de datos y que sirven de envasepara transportar los datos entre los servlets y JSP en modelo MVC. Una clase (contenedor) con setters y getters se usa para (poner) y (obtener) los datos.

"Enterprise Java Beans" son similares a "Java Beans" con características añadidas como administración de sesiones, seguridad, transacciones, etc. con la ayuda de diferentes tipos de EJB que son

  1. bean de sesión
  2. bean de entidad
  3. beans controlados por mensajes