Repaso
English

¿Qué tienen en común @Component, @Service, @Repository y @RestController?

Opciones

  1. Son anotaciones que solo se usan dentro de clases de test
  2. Son stereotypes: Spring los detecta y registra beans (Opción correcta)
  3. Solo funcionan en interfaces, no en clases
  4. 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.

Términos clave

Practica esta pregunta en Repaso