Java POJO
Definición
POJO→Plain Old Java Object
Características
- 
    
Clases simplesno dependen de unframework - 
    
Objetono sujeto a ninguna restricción especial - 
    
Objeto POJOes unainstanciade unaclasequeno extiende ni implementa nada - 
    
Surge como
oposiciónal estándaresEJBanteriores al3.0 - 
    
No sigue ningún de los principales modelos , convecciones o
frameworkdeobjetosdeJava - 
    
ObjetodeJavano 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
softwareyframeworkcompatibles conPOJOrequieren el uso deanotaciones preespecificadaspara funciones como lapersistenciafuncionen- 
        
objeto ←→
"Clase"- Fuera de los 
POJOseagregaran anotacionesy volvería al estado dePOJO, si se eliminan lasanotacionestodavía se puede considerar unPOJO 
 - Fuera de los 
 - 
        
Objetosbásicos sigue siendoPOJOen el sentido no tienen características especialescomo la interfaz implementadaque convierte unobjetoJava especializado 
 - 
        
 
POJO - JavaBean
- 
    
Un
JavaBeanes unPOJOque esserializable - 
    
Tiene un
constructor sin argumentosy permite elaccesoa laspropiedadesutilizandométodos getterysetterque siguen una convención de nomenclatura simple.- Se pueden hacer 
referencias declarativas simplesa las propiedades deJavaBeans arbitrarios 
 - Se pueden hacer 
 - 
    
El código que usa una
referencia declarativade estetipono tiene que saber nada sobre el tipo debeany elbeanse puede usar con muchosframeworksin que estosframeworktengan que saber el tipo exacto delbean - 
    
La especificación de
JavaBeanssi se implementa por completo rompe ligeramente elmodelo POJOya que laclasedebe implementar lainterfaz Serializablepara ser un verdaderoJavaBean - 
    
Muchas
clases POJOque todavía se llamanJavaBeansno cumplen este requisito - 
    
Dado que
Serializablees unainterfaz de marcador (sin método)esto supone que no es una gran carga - 
    
Ejemplo de un
componente JavaServer Faces(JSF)que tiene unenlace bidireccionala lapropiedaddePOJO 
<h:inputText value="#{MyBean.someProperty}"/>
Ejemplo 1 - Clase POJO
- Si se define una 
clase Personacon susatributos privadosy sus correspondientesgettersysetters públicosunainstanciade estasimple clasees 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
POJOhan surgido ensistemasquebrindana losPOJOunafuncionalidad completautilizada en losframeworks - 
    
POJOse centra en lalógica empresarialy no depende de losframeworks - 
    
Los
frameworksde programaciónorientados a aspectos (AOP)agregan forma transparente lapersistencia,transaccionesyseguridad - 
    
Spring: primera implementaciones del modelo conPOJO - 
    
Ejemplode unbean EJBque es unPOJO- 
        
(EJB)→Enterprise JavaBeans - 
        
(JPA)→Java Persistence APIincluyendoHibernate - 
        
CDI→(Contexts and Dependency Injection)para la plataformaJavaEE 
 - 
        
 - 
    
Bean EJBes funcional y demuestra cómoEJB3aprovecha el modeloPOJO- Ejemplo
 
 
public class HelloWorldService {
  
  public String sayHello() {
    return "Hello, world!";
 }
}
- 
    
Beanno necesita extender ningunaclase EJBniimplementarningunainterfaz EJB; tampoco necesita contener anotacionesEJB- El programador declara un ````archivo XML externo
los serviciosEJBdeben agregarse albean`` 
 - 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
JSONse utilizanPOJOparaserializarlosobjetosen formatoJSON, con bibliotecas comoGson
      
      
      
Deja un comentario