0Pricing
Java Academy · Lección

Autoconfiguración y starters de Spring Boot

Comprenda cómo Spring Boot autoconfigura beans según las dependencias del classpath y las anotaciones condicionales.

Autoconfiguración y starters de Spring Boot es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

¿Qué es la autoconfiguración de Spring Boot?

La autoconfiguración configura automáticamente los beans de Spring en función de lo que está presente en el classpath y en el entorno. Elimina la configuración manual de @Bean para integraciones comunes.

La anotación @SpringBootApplication

@SpringBootApplication es una composición de @Configuration, @EnableAutoConfiguration y @ComponentScan. Activa la autoconfiguración y el escaneo de componentes.

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

Cómo funciona la autoconfiguración

Spring Boot busca en META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (Spring Boot 3) una lista de clases de autoconfiguración. Cada clase se aplica de forma condicional.

// Spring Boot 3 imports file:
// org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
// org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

@ConditionalOnClass y @ConditionalOnMissingBean

Las clases de autoconfiguración usan anotaciones @Conditional para aplicarse únicamente cuando se cumplen condiciones específicas; por ejemplo, cuando una clase está en el classpath o cuando todavía no se ha definido un bean.

@AutoConfiguration
@ConditionalOnClass(DataSource.class)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration {
    @Bean
    public DataSource dataSource(DataSourceProperties props) {
        return DataSourceBuilder.create().build();
    }
}

Starters de Spring Boot

Un starter es un conjunto seleccionado de descriptores de dependencias. Al añadir spring-boot-starter-web al proyecto, se incorporan Spring MVC, Tomcat, Jackson y sus autoconfiguraciones, sin tener que buscar dependencias manualmente.

// build.gradle:
dependencies {
    implementation "org.springframework.boot:spring-boot-starter-web"
    implementation "org.springframework.boot:spring-boot-starter-data-jpa"
    implementation "org.springframework.boot:spring-boot-starter-validation"
}

Starters habituales

Starters principales: starter-web (REST + Tomcat), starter-data-jpa (JPA + Hibernate), starter-security, starter-test (JUnit + Mockito) y starter-actuator (salud/métricas).

Sobrescribir la autoconfiguración

Defina su propio @Bean del mismo tipo para que tenga prioridad sobre los beans autoconfigurados. @ConditionalOnMissingBean garantiza que el bean autoconfigurado solo se cree si el suyo no existe.

// Override auto-configured ObjectMapper:
@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        return new ObjectMapper()
            .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
            .registerModule(new JavaTimeModule());
    }
}

Excluir la autoconfiguración

Excluya las clases de autoconfiguración específicas que no necesite; resulta útil cuando un starter incorpora algo que desea configurar manualmente.

@SpringBootApplication(exclude = {
    DataSourceAutoConfiguration.class,
    SecurityAutoConfiguration.class
})
public class MyApp { ... }

Crear su propio starter

Cree un módulo starter con una clase de autoconfiguración y regístrelo en META-INF/spring/....AutoConfiguration.imports. Los demás proyectos que incluyan su starter obtendrán sus beans automáticamente.

// my-starter/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
// com.example.MyLibraryAutoConfiguration

Depurar la autoconfiguración

Ejecute la aplicación con la opción --debug o establezca logging.level.org.springframework.boot.autoconfigure=DEBUG para ver un «CONDITIONS EVALUATION REPORT» que indica qué autoconfiguraciones se aplicaron o excluyeron y por qué.

java -jar myapp.jar --debug
# Or in application.properties:
# logging.level.org.springframework.boot.autoconfigure=DEBUG

Endpoint /conditions de Actuator

Active spring-boot-starter-actuator y exponga el endpoint /actuator/conditions para consultar el informe de evaluación de la autoconfiguración en tiempo de ejecución, sin reiniciar.

# application.properties:
management.endpoints.web.exposure.include=conditions
# Then:
curl http://localhost:8080/actuator/conditions

Comprobación rápida

¿Qué anotación hace que se cree un bean solo si todavía no se ha definido ningún bean de ese tipo?

Repaso

La autoconfiguración usa anotaciones condicionales para conectar beans en función del classpath y de los beans existentes. Los starters agrupan dependencias y autoconfiguración. Puede sobrescribirla con sus propios beans y excluir las configuraciones que no necesite. Depure con --debug.

Preguntas frecuentes

¿La lección «Autoconfiguración y starters de Spring Boot» es gratis?

Sí — el texto completo de «Autoconfiguración y starters de Spring Boot» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Autoconfiguración y starters de Spring Boot»?

Comprenda cómo Spring Boot autoconfigura beans según las dependencias del classpath y las anotaciones condicionales. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Autoconfiguración y starters de Spring Boot»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Autoconfiguración y starters de Spring Boot
  2. Propiedades de la aplicación y perfiles
  3. Inyección de beans: @Component, @Service, @Repository
  4. Inyección por constructor y dependencias circulares
← Volver a Java Academy