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.MyLibraryAutoConfigurationEseguire 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=DEBUGEndpoint /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/conditionsVerifica 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
- Configurazione automatica e starter di Spring Boot
- Proprietà dell'applicazione e profili
- Collegamento dei bean: @Component, @Service, @Repository
- Iniezione tramite costruttore e dipendenze circolari