Professional Documents
Culture Documents
Una duda que tuve hace algn 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 mtodos 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 ms 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 ejecucin 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 construccin de soluciones empresariales. Y por ltimo, un JavaBean (o tambin conocido simplemente como Bean) es una clase Java que cumple 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 mtodo setter y getter, aadindole la palabra "set" o "get" al nombre del atributo, un constructor ssin parametros y debe ser serializable. Sera algo as:
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 cdigo muestra cmo 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 inyeccin 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
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 mtodo que no es pblico se lanza una EJBException. No se puede hacer ninguna presuncin sobre la implementacin interna de la vista sin interfaz. Aunque la referencia corresponda con el tipo de la clase del bean, no hay correspondencia entre la implementacin referenciada y la implementacin 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
contenedor no provee una vista sin interfaz (a menos que se pida explcitamente usando la anotacin LocalBean). Esta caracterstica permite crear EJB sin interfaces, lo que simplifica el desarrollo. Quizs en el futuro tengamos tambin vistas remotas sin interfaz.