Uno de las características principales de SpringBoot es que sigue siendo Spring tradicional pero gracias a sus sistemas de automatización, puede autoconfigurarse.

La imagen es clara, con Spring Framework se tienen todos ingredientes pero con Spring Boot ya está todo mezclado, cocinado y listo para comer.
@SpringBootApplication es una anotación que ejecuta tres anotaciones de autoconfiguración con sus valores por defecto:
- @EnableAutoConfiguration
- @ComponentScan
- @Configuration
Hay que aclarar que la autoconfiguración de las anotaciones se pueden modificar.
@EnableAutoConfiguration
Enable auto-configuration del Application Context de Spring, intenta conjeturar y configurar beans que el usuario pueda necesitar. Las clases Auto-configuration son usualmente aplicadas basada en el classpath y en los beans que el usuario haya definido.
Por ejemplo, si tiene tomcat-embedded.jar en el classpath, es probable que quiera usar TomcatServletContainerFactory (a menos que usted haya definido sus propio EmbeddedServletContainerFactory bean.
Auto-configuration trata de ser tan inteligente como sea posible y se detendrá a medida que el usuario defina más y más su propia configuración. El usuario puede siempre usar exclude() en cualquier configuración en donde no quiera el efecto de la autoconfiguración.
@ComponentScan
Configura las directivas de escaneo de componentes para usar con las clases @Configuration. Proporciona soporte paralelo con el elemento de Spring XML.
Se pueden especificar basesPackageClasses () o basePackages() (o su valor de alias ()) para definir paquetes específicos para analizar. Si no se definen paquetes específicos, la exploración se realizará desde el paquete de la clase que declara esta anotación.
Desde la versión 3.1
@Configuration
Indica que una clase declara uno o más métodos @Bean y puede ser procesada por el contenedor Spring para generar definiciones de beans y solicitudes de servicio para esos beans en tiempo de ejecución, por ejemplo:
@Configuration
public class AppConfig {
@Bean
public MyBean myBean() {
// instantiate, configure and return bean ...
}
}
https://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch03.html