Java POJO
Definición
POJO
→Plain Old Java Object
Características
-
Clases simples
no dependen de unframework
-
Objeto
no sujeto a ninguna restricción especial -
Objeto POJO
es unainstancia
de unaclase
queno extiende ni implementa nada
-
Surge como
oposición
al estándaresEJB
anteriores al3.0
-
No sigue ningún de los principales modelos , convecciones o
framework
deobjetos
deJava
-
Objeto
deJava
no está sujeto a ninguna otra restricción que no este impuesta por la especificación dellenguaje Java
POJO no debería ser
1.Extender extend
de preespecificadas clases
// NO EXTIENDE
public class Foo extends javax.servlet.http.HttpServlet { ... }
2.Implementar interface
preespecificadas
// NO EXTIENDE
public class Foo implements javax.ejb.EntityBean { ... }
3.Contener anotaciones
preespecificadas
// NO EXTIENDE
@javax.persistence.Entity public class Baz { ... }
-
Por cuestiones de dificultades técnicas del
software
yframework
compatibles conPOJO
requieren el uso deanotaciones preespecificadas
para funciones como lapersistencia
funcionen-
objeto ←→
"Clase"
- Fuera de los
POJO
seagregaran anotaciones
y volvería al estado dePOJO
, si se eliminan lasanotaciones
todavía se puede considerar unPOJO
- Fuera de los
-
Objetos
básicos sigue siendoPOJO
en el sentido no tienen características especialescomo la interfaz implementada
que convierte unobjeto
Java especializado
-
POJO - JavaBean
-
Un
JavaBean
es unPOJO
que esserializable
-
Tiene un
constructor sin argumentos
y permite elacceso
a laspropiedades
utilizandométodos getter
ysetter
que siguen una convención de nomenclatura simple.- Se pueden hacer
referencias declarativas simples
a las propiedades deJavaBeans arbitrarios
- Se pueden hacer
-
El código que usa una
referencia declarativa
de estetipo
no tiene que saber nada sobre el tipo debean
y elbean
se puede usar con muchosframework
sin que estosframework
tengan que saber el tipo exacto delbean
-
La especificación de
JavaBeans
si se implementa por completo rompe ligeramente elmodelo POJO
ya que laclase
debe implementar lainterfaz Serializable
para ser un verdaderoJavaBean
-
Muchas
clases POJO
que todavía se llamanJavaBeans
no cumplen este requisito -
Dado que
Serializable
es unainterfaz de marcador (sin método)
esto supone que no es una gran carga -
Ejemplo de un
componente JavaServer Faces
(JSF)
que tiene unenlace bidireccional
a lapropiedad
dePOJO
<h:inputText value="#{MyBean.someProperty}"/>
Ejemplo 1 - Clase POJO
- Si se define una
clase Persona
con susatributos privados
y sus correspondientesgetters
ysetters públicos
unainstancia
de estasimple clase
es unobjeto POJO
/**
* Concepto de POJO
*/
public class Persona {
public int edad;
public double peso;
public String nombre;
public Persona() {
}
/**
* @return the edad
*/
public int getEdad() {
return edad;
}
/**
* @param edad the edad to set
*/
public void setEdad(int edad) {
this.edad = edad;
}
/**
* @return the peso
*/
public double getPeso() {
return peso;
}
/**
* @param peso the peso to set
*/
public void setPeso(double peso) {
this.peso = peso;
}
/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
Ejemplo 2 - Clase POJO
public class MyBean {
private String someProperty;
public String getSomeProperty() {
return someProperty;
}
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
}
Conceptos
-
Los diseños que usan
POJO
han surgido ensistemas
quebrindan
a losPOJO
unafuncionalidad completa
utilizada en losframeworks
-
POJO
se centra en lalógica empresarial
y no depende de losframeworks
-
Los
frameworks
de programaciónorientados a aspectos (AOP)
agregan forma transparente lapersistencia
,transacciones
yseguridad
-
Spring
: primera implementaciones del modelo conPOJO
-
Ejemplo
de unbean EJB
que es unPOJO
-
(EJB)
→Enterprise JavaBeans
-
(JPA)
→Java Persistence API
incluyendoHibernate
-
CDI
→(Contexts and Dependency Injection)
para la plataformaJavaEE
-
-
Bean EJB
es funcional y demuestra cómoEJB3
aprovecha el modeloPOJO
- Ejemplo
public class HelloWorldService {
public String sayHello() {
return "Hello, world!";
}
}
-
Bean
no necesita extender ningunaclase EJB
niimplementar
ningunainterfaz EJB
; tampoco necesita contener anotacionesEJB
- El programador declara un ````archivo XML externo
los servicios
EJBdeben agregarse al
bean``
- El programador declara un ````archivo XML externo
<enterprise-beans>
<session>
<ejb-name>helloWorld</ejb-name>
<ejb-class>com.example.HelloWorldService</ejb-class>
<session-type>stateless</session-type>
</session>
</enterprise-beans>
Otros Usos
JSON
se utilizanPOJO
paraserializar
losobjetos
en formatoJSON
, con bibliotecas comoGson
Deja un comentario