Repaso
English

¿Para qué sirve @SpringBootApplication?

Opciones

  1. Arranca la base de datos que usará la aplicación
  2. Combina configuración, auto-config y component scan (Opción correcta)
  3. Define un endpoint REST directamente en la clase principal
  4. Ejecuta los unit tests cuando arranca la aplicación

Respuesta

Combina @Configuration, @EnableAutoConfiguration y @ComponentScan, y marca la clase principal de la app

Por qué

Colocada en tu clase principal, es un atajo para tres anotaciones:

  • @Configuration: la clase puede definir beans.
  • @EnableAutoConfiguration: activa la configuración automática de Spring Boot.
  • @ComponentScan: busca en este package y sus sub-packages clases con @Component, @Service...

Por eso la clase principal debe estar en el package superior de tu proyecto.

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

Recuerda

Anotación de la clase principal = config + auto-config + component scan.

Términos clave

Practica esta pregunta en Repaso