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 |