Qué es un POJO en Java: definición y ejemplos
Aprende qué es un POJO en Java, sus diferencias con JavaBean y DTO, y cómo se usa en Spring Boot con ejemplos de código.

Qué es un POJO en Java: definición y ejemplos
POJO (Plain Old Java Object) es una clase Java simple que no depende de ningún framework ni interfaz especial. Es un objeto básico con atributos privados, constructores, getters y setters. Es la base de la estructura de datos en cualquier aplicación Java.
Última actualización: agosto 2026
Contenido Rápido
- POJO (Plain Old Java Object) es una clase Java sin dependencias de framework
- Tiene atributos privados, constructores, getters y setters
- Todo JavaBean es un POJO, pero no todo POJO es JavaBean
- En Spring Boot se usan como entidades, modelos de respuesta y beans
- Se pueden anotar con Lombok (
@Data) para reducir boilerplate
Cuando hablamos de un POJO, lo que estamos describiendo es un tipo sencillo sin referencias a ningún marco en particular. Un POJO no tiene una convención de nomenclatura para nuestras propiedades y métodos. El nombre POJO viene de las siglas Plain Old Java Objects o, en español, Objetos Java Simples y Antiguos.
Los POJOs son objetos que no contienen ningún tipo de lógica compleja y, por norma general, solo suelen contener su constructor y getters o setters. Además, no tienen extensión ni implementación de ninguna clase o interfaz.
Vamos a crear un empleado POJO básico. Tendrá tres propiedades: nombre, apellidos y fecha de inicio:
public class EmpleadoPojo {
public String nombre;
public String apellidos;
private LocalDate fechaInicio;
public EmpleadoPojo(String nombre, String apellidos, LocalDate fechaInicio) {
this.nombre = nombre;
this.apellidos = apellidos;
this.fechaInicio = fechaInicio;
}
public String nombre() {
return this.nombre + " " + this.apellidos;
}
public LocalDate getFechaInicio() {
return this.fechaInicio;
}
}
Prueba este ejemplo y experimenta con POJOs en el Java Playground de CodeJa, con ejecución de código en el navegador.
POJO vs JavaBean vs DTO
| Característica | POJO | JavaBean | DTO |
|---|---|---|---|
| Constructor sin parámetros | No obligatorio | Obligatorio | No obligatorio |
| Getters y setters | Opcionales | Obligatorios (getXxx/setXxx) | Recomendados |
| Serialización | No obligatoria | Sí, implementa Serializable | Suele ser Serializable |
| Propósito | Clase Java simple | Componente reutilizable | Transferir datos entre capas |
Preguntas Frecuentes
¿Qué es un POJO en Java?
POJO (Plain Old Java Object) es una clase Java que no depende de ningún framework, interfaz o clase base especial. Es un objeto simple con atributos privados, constructores, getters y setters. Es el término opuesto a un EJB o componente empresarial.
POJO vs JavaBean: ¿cuál es la diferencia?
Un JavaBean es un POJO que sigue convenciones específicas: tiene un constructor sin parámetros, sus atributos son privados, y expone valores a través de getters y setters que siguen la nomenclatura getXxx() y setXxx(). Todo JavaBean es un POJO, pero no todo POJO cumple las reglas de JavaBean.
POJO vs DTO: ¿son lo mismo?
No exactamente. Un POJO es un término general para cualquier clase Java simple. Un DTO es un tipo específico de POJO usado para transferir datos entre capas. Un POJO puede tener lógica de negocio, mientras que un DTO típicamente solo tiene datos.
¿Para qué sirven los POJOs en Spring Boot?
En Spring Boot, los POJOs se usan como entidades de base de datos (con @Entity), como modelos de respuesta en APIs REST, como objetos de transferencia entre capas, y como beans de configuración (con @ConfigurationProperties). Son la base de la estructura de datos en cualquier aplicación Spring.
¿Se pueden usar anotaciones en un POJO?
Sí. Aunque el término POJO implica una clase sin dependencias, en la práctica se usan anotaciones comúnmente: @Data de Lombok para generar getters, setters y constructores; @JsonProperty para serialización JSON; y @NotNull para validación. Estas anotaciones no rompen la naturaleza de POJO porque son metadatos que no alteran la estructura base.
Artículos Relacionados
Newsletter Semanal de Java
Cada viernes recibe lo más nuevo del ecosistema Java: frameworks, herramientas y mejores prácticas.
🔒 Sin spam. Cancela cuando quieras.