Conceptos Java EE

3
 Diferencias entre pojo, java bean y ejb Una duda que tuve hace algún tiempo, a saber pues POJO son las iniciales de "Plain Old Java Object", que puede interpretarse como "Un objeto Java Plano y a la Antigua". Un POJO es una instancia de una clase que no extiende ni implementa nada en especial. Por ejemplo, un Controller de Spring tiene que extender de SimpleFormController, e implementar los métodos abstractos de ese tipo: por eso, no es un POJO. Un Servlet, tiene que extender de HttpServlet tampoco es un POJO. En cambio, si defines una clase Persona (o la clase EstoEsUnBean que está más abajo) con atributos y unas cuantas operaciones, tienes un simple y modesto POJO. Un Enterprise Java Bean (EJB) es un componente de negocio J2EE, y para su ejecución necesita un contenedor EJB/J2EE (JBoss, WAS, OAS, etc). El hecho de usar EJB's te da acceso a los servicios del Con ten edor EJB ( manejo de tra nsa cci ones, seguridad ,per sis tenc ia, etc ) que simplifican bastante la construcción de soluciones empresariales. Y por último, un JavaBean (o también conocido simplemente como Bean) es una clase Java que cumple con ciertas normas con los nombres de sus atributo s y operac iones . Un JavaBean tiene declarados sus atributos como privados y implemente para cada uno de ellos un método setter y getter, añadiéndole la palabra "set" o "get" al nombre del atr ibu to, un constructor ssin parametros y debe ser serializable. Sería algo así: Managed bean Backing bean EJB son componentes del lado del servidor para la plataforma Java Enterprise Edition (Java EE), que apuntan a crear un desarrollo rápido y simple para aplicaciones distribuidas, transaccionales, seguras y portables. EJB 3.1 trae un nuevo conjunto de características que mejoran el potencial de esta tecnología. Es una versión muy importante que traerá nuevas capacidades faltantes a estos componentes. En este artículo vamos a repasar los elementos más importantes de EJB 3.1. Vista sin interfaz EJB 3.1 introduce el concepto de vista sin interfaz, que consiste en una variación de la vista Local, la cual expone todos los métodos públicos de un bean. Los Session Beans no están obligados a implementar una interfaz. El contenedor de EJB provee una implementación a la referencia a una vista sin interfaz, lo que le permite al cliente invocar cualquier método público de un bean, y por supuesto contar con transacciones, seguridad y comportamiento con interceptores. Todos los métodos públicos del bean (incluyendo aquellos definidos en superclases) están disponibles en la vista sin interfaz. Un cliente puede obtener una referencia a esta vista haciendo un lookup JNDI o inyectando la dependencia, tal cual se hace con las vistas locales o remotas.

Transcript of Conceptos Java EE

5/16/2018 Conceptos Java EE - slidepdf.com

http://slidepdf.com/reader/full/conceptos-java-ee 1/3

 

Diferencias entre pojo, java bean y ejb

Una duda que tuve hace algún tiempo, a saber pues POJO son las iniciales de "Plain Old Java

Object", que puede interpretarse como "Un objeto Java Plano y a la Antigua". Un POJO es una

instancia de una clase que no extiende ni implementa nada en especial. Por ejemplo, unController de Spring tiene que extender de SimpleFormController, e implementar los métodos

abstractos de ese tipo: por eso, no es un POJO. Un Servlet, tiene que extender de HttpServlet

tampoco es un POJO. En cambio, si defines una clase Persona (o la clase EstoEsUnBean que está

más abajo) con atributos y unas cuantas operaciones, tienes un simple y modesto POJO.

Un Enterprise Java Bean (EJB) es un componente de negocio J2EE, y para su ejecución necesita

un contenedor EJB/J2EE (JBoss, WAS, OAS, etc). El hecho de usar EJB's te da acceso a los

servicios del Contenedor EJB ( manejo de transacciones, seguridad ,persistencia, etc) que

simplifican bastante la construcción de soluciones empresariales.

Y por último, un JavaBean (o también conocido simplemente como Bean) es una clase Java quecumple con ciertas normas con los nombres de sus atributos y operaciones. Un JavaBean tiene

declarados sus atributos como privados y implemente para cada uno de ellos un método setter y

getter, añadiéndole la palabra "set" o "get" al nombre del atributo, un constructor ssin

parametros y debe ser serializable. Sería algo así:

Managed bean

Backing bean

EJB

son componentes del lado del servidor para la plataforma Java Enterprise Edition (Java EE), que apuntan

a crear un desarrollo rápido y simple para aplicaciones distribuidas, transaccionales, seguras y portables.

EJB 3.1 trae un nuevo conjunto de características que mejoran el potencial de esta tecnología. Es una

versión muy importante que traerá nuevas capacidades faltantes a estos componentes. En este artículo

vamos a repasar los elementos más importantes de EJB 3.1.

Vista sin interfazEJB 3.1 introduce el concepto de vista sin interfaz, que consiste en una variación de la vista Local, la cual

expone todos los métodos públicos de un bean. Los Session Beans no están obligados a implementar una

interfaz. El contenedor de EJB provee una implementación a la referencia a una vista sin interfaz, lo que le

permite al cliente invocar cualquier método público de un bean, y por supuesto contar con transacciones,

seguridad y comportamiento con interceptores.

Todos los métodos públicos del bean (incluyendo aquellos definidos en superclases) están disponibles en

la vista sin interfaz. Un cliente puede obtener una referencia a esta vista haciendo un lookup JNDI o

inyectando la dependencia, tal cual se hace con las vistas locales o remotas.

5/16/2018 Conceptos Java EE - slidepdf.com

http://slidepdf.com/reader/full/conceptos-java-ee 2/3

 

A diferencia de las vistas locales o remotas, en donde la referencia consiste de la interfaz local/remota

respectivamente, la referencia a una vista sin interfaz se declara como la clase del bean.

El siguiente ejemplo de código muestra cómo un servlet puede acceder a una vista sin interfaz. La

referencia en el cliente es la vista sin interfaz ByeEJB, es decir, la clase del bean. El EJB no implementa

ninguna interfaz. La referencia al EJB se obtiene por inyección de dependencia.

ByeServlet

 

(...)

@EJB

 private ByeEJB byeEJB;

 

 public  String  sayBye() {

  StringBuilder  sb = new  StringBuilder ();

sb.append ("<html><head>");

sb.append ("<title>ByeBye</title>"); 

sb.append ("</head><body>");

sb.append ("<h1>" + byeEJB.sayBye() + "</h1>");

sb.append ("</body></html>");

  return sb.toString ();

(...)

 

ByeEJB

 

@Stateless

 public  class ByeEJB {

 

 public  String  sayBye() {

  return "Bye!";

  } 

}

 

Como el tipo de la referencia al EJB es la clase del bean existen ciertas limitaciones:

• El cliente nunca puede usar al operador new para adquierir la referencia.

• Si se intenta invocar un método que no es público se lanza una EJBException.

• No se puede hacer ninguna presunción sobre la implementación interna de la vista sin interfaz.

Aunque la referencia corresponda con el tipo de la clase del bean, no hay correspondencia entre

la implementación referenciada y la implementación del bean.

Si el bean no expone ninguna interfaz remota o local, entonces el contenedor tiene que dejar disponible

una vista sin interfaz. En cambio, si el bean expone al menos una interfaz remota o una local, entonces el

5/16/2018 Conceptos Java EE - slidepdf.com

http://slidepdf.com/reader/full/conceptos-java-ee 3/3

 

contenedor no provee una vista sin interfaz (a menos que se pida explícitamente usando la

anotación LocalBean).

Esta característica permite crear EJB sin interfaces, lo que simplifica el desarrollo. Quizás en el futuro

tengamos también vistas remotas sin interfaz.

JPA

Singleton

Stateless

Statefull