0Pricing
Java Academy · Lezione

Configurazione automatica e starter di Spring Boot

Comprenda come Spring Boot configuri automaticamente i bean in base alle dipendenze nel classpath e alle annotazioni condizionali.

Configurazione automatica e starter di Spring Boot è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.

Che cos'è l'auto-configurazione di Spring Boot?

L'auto-configurazione configura automaticamente i bean Spring in base a ciò che è presente nel classpath e nell'ambiente. Elimina la configurazione manuale di @Bean per le integrazioni comuni.

L'annotazione @SpringBootApplication

@SpringBootApplication è una composizione di @Configuration, @EnableAutoConfiguration e @ComponentScan. Attiva l'auto-configurazione e la scansione dei componenti.

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

Come funziona l'auto-configurazione

Spring Boot analizza META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (Spring Boot 3) per ottenere l'elenco delle classi di auto-configurazione. Ogni classe viene applicata in modo condizionale.

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

@ConditionalOnClass e @ConditionalOnMissingBean

Le classi di auto-configurazione usano le annotazioni @Conditional per applicarsi solo quando vengono soddisfatte condizioni specifiche, ad esempio quando una classe è presente nel classpath o quando un bean non è ancora stato definito.

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

Gli starter di Spring Boot

Uno starter è un insieme curato di descrittori di dipendenze. Aggiungendo spring-boot-starter-web al progetto si includono Spring MVC, Tomcat, Jackson e le relative auto-configurazioni, senza dover cercare manualmente le dipendenze.

// 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"
}

Starter comuni

Starter principali: starter-web (REST + Tomcat), starter-data-jpa (JPA + Hibernate), starter-security, starter-test (JUnit + Mockito), starter-actuator (stato del servizio e metriche).

Sovrascrivere l'auto-configurazione

Definisca un proprio @Bean dello stesso tipo per dargli precedenza rispetto ai bean configurati automaticamente. @ConditionalOnMissingBean garantisce che il bean auto-configurato venga creato solo se il proprio bean è assente.

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

Escludere l'auto-configurazione

Escluda le classi di auto-configurazione specifiche che non desidera usare: è utile quando uno starter include qualcosa che preferisce configurare manualmente.

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

Creare un proprio starter

Crei un modulo starter con una classe di auto-configurazione e la registri in META-INF/spring/....AutoConfiguration.imports. Gli altri progetti che includono il suo starter otterranno automaticamente i suoi bean.

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

Eseguire il debug dell'auto-configurazione

Esegua l'applicazione con il flag --debug oppure imposti logging.level.org.springframework.boot.autoconfigure=DEBUG per visualizzare un "CONDITIONS EVALUATION REPORT" che indica quali auto-configurazioni sono state applicate o escluse e per quale motivo.

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

Endpoint /conditions di Actuator

Abiliti spring-boot-starter-actuator ed esponga l'endpoint /actuator/conditions per visualizzare il report di valutazione dell'auto-configurazione durante l'esecuzione, senza riavviare l'applicazione.

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

Verifica rapida

Quale annotazione fa sì che un bean venga creato solo se non è già definito alcun bean di quel tipo?

Riepilogo

L'auto-configurazione usa annotazioni condizionali per configurare i bean in base al classpath e ai bean esistenti. Gli starter raggruppano dipendenze e auto-configurazione. Sovrascriva la configurazione con i propri bean. Escluda le configurazioni indesiderate. Esegua il debug con --debug.

Domande Frequenti

La lezione «Configurazione automatica e starter di Spring Boot» è gratuita?

Sì — il testo completo di «Configurazione automatica e starter di Spring Boot» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.

Cosa imparerò in «Configurazione automatica e starter di Spring Boot»?

Comprenda come Spring Boot configuri automaticamente i bean in base alle dipendenze nel classpath e alle annotazioni condizionali. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Configurazione automatica e starter di Spring Boot»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurazione automatica e starter di Spring Boot
  2. Proprietà dell'applicazione e profili
  3. Collegamento dei bean: @Component, @Service, @Repository
  4. Iniezione tramite costruttore e dipendenze circolari
← Torna a Java Academy