Boot auto-configures beans based on what’s on the classpath and your properties (so you get sensible defaults). Starters are dependency bundles (e.g., `spring-boot-starter-web`) that pull common libraries and enable related auto-config.
Spring Boot auto-configuration is a set of `@Configuration` classes enabled by `@SpringBootApplication` (via `@EnableAutoConfiguration`). Boot decides what to configure based on:
Starters (like `spring-boot-starter-web`, `spring-boot-starter-security`, `spring-boot-starter-data-jpa`) are curated dependency sets that:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)