Las anotaciones (annotations
)
son metadatos que se agregan al código para dar instrucciones al compilador,
herramientas o frameworks. Se escriben con @NombreDeLaAnotación
y pueden aplicarse a clases, métodos, atributos, parámetros, etc.
📚 Clasificación de anotaciones en Java
1. Anotaciones estándar del JDK
Estas vienen con Java y se usan para tareas comunes:
Anotación |
Descripción |
@Override |
Indica que un método sobrescribe uno de la superclase |
@Deprecated |
Marca elementos como obsoletos |
@SuppressWarnings |
Suprime advertencias del compilador |
@FunctionalInterface |
Declara que una interfaz tiene un único método abstracto |
2. Anotaciones de meta-programación
Estas se usan para definir cómo se comportan otras anotaciones
Anotación |
Uso |
@Retention |
Define si la anotación está disponible en tiempo de compilación o
ejecución |
@Target |
Especifica dónde se puede aplicar (clase, método, campo, etc.) |
@Documented |
Indica si debe aparecer en la documentación JavaDoc |
@Inherited |
Permite que una clase hija herede la anotación de su padre |
3. Anotaciones en frameworks populares
🛠️ Hibernate / JP
Anotación |
Función |
@Entity |
Declara una clase como entidad persistente |
@Table |
Define el nombre de la tabla en la base de datos |
@Id |
Marca el campo como clave primaria |
@GeneratedValue |
Indica cómo se genera el ID |
@Column |
Configura propiedades de la columna |
@OneToMany, @ManyToOne, @JoinColumn |
Relacionan entidades |
🌱 Spring Framewor
Anotación |
Función |
@Component |
Declara una clase como componente gestionado por Spring |
@Service |
Marca una clase como servicio |
@Repository |
Indica que la clase accede a datos |
@Autowired |
Inyecta dependencias automáticamente |
@RequestMapping, @GetMapping, @PostMapping |
Asocian métodos a rutas HTTP |
@RestController |
Combina @Controller y @ResponseBody |