¿Qué tienen en común @Component, @Service, @Repository y @RestController?
Opciones
- Son anotaciones que solo se usan dentro de clases de test
- Son stereotypes: Spring los detecta y registra beans (Opción correcta)
- Solo funcionan en interfaces, no en clases
- Crean las tablas de base de datos correspondientes al arrancar
Respuesta
Son anotaciones stereotype que le dicen a Spring que detecte la clase y la registre como bean; las tres últimas añaden el significado de una capa
Por qué
@Component es la marca genérica: "Spring, gestiona esta clase" (el component scanning la encuentra).
@Service marca lógica de negocio, @Repository marca acceso a datos (también traduce las excepciones de persistencia a las de Spring) y @RestController marca un controlador web que devuelve datos (JSON) en lugar de vistas.
Se comportan como @Component, pero los nombres comunican la arquitectura.
Recuerda
Stereotypes = "gestiona esta clase como bean" + significado de capa.