Skip to content

Latest commit

 

History

History

24-Spring-Boot-Starters

// concepto

Los starters son dependencias Maven/Gradle que agrupan todo lo necesario para una funcionalidad concreta. Al añadir un starter, Spring Boot detecta las clases en el classpath y aplica autoconfiguración por defecto.

<!-- Solo esto es necesario para una app web completa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot detecta que Tomcat está en el classpath → configura automáticamente el servidor embebido, Jackson para JSON, DispatcherServlet, etc.

// key features

Starters más comunes:

Starter Qué incluye
starter-web Tomcat, Spring MVC, Jackson
starter-data-jpa Hibernate, Spring Data JPA, pool de conexiones
starter-security Spring Security con autenticación básica por defecto
starter-test JUnit 5, Mockito, AssertJ, Spring Test
starter-actuator Endpoints de monitoreo y salud
starter-validation Hibernate Validator (Bean Validation)

@SpringBootApplication = 3 anotaciones en una:

@SpringBootApplication
// equivale a:
@Configuration         // clase de configuración Spring
@EnableAutoConfiguration  // activa la autoconfiguración
@ComponentScan         // escanea beans en el paquete y subpaquetes

Condicional de autoconfiguración: Spring Boot usa @Conditional para activar configuración solo cuando se cumplen condiciones:

  • @ConditionalOnClass(DataSource.class) — si la clase está en el classpath
  • @ConditionalOnMissingBean(DataSource.class) — si no hay un bean ya definido
  • @ConditionalOnProperty("app.feature.enabled") — si la propiedad está activa
// ventajas
  • Zero configuration para el 80% de casos comunes.
  • Convención sobre configuración: funciona por defecto, personalizable cuando necesario.
  • @ConditionalOnMissingBean: define tu propio bean para sobrescribir el por defecto.
  • spring-boot-actuator para observabilidad con mínima configuración.

Ver ExpAutoConfig.java, ExpConditionalOnMissing.java, ExpStarterComposition.java y ExpSpringFactories.java para ejemplos ejecutables con autoconfiguración, starters y condiciones @Conditional.