Autoconfiguração e starters do Spring Boot
Entenda como o Spring Boot configura beans automaticamente com base nas dependências do classpath e nas anotações condicionais.
Autoconfiguração e starters do Spring Boot é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
O que é a configuração automática do Spring Boot?
A configuração automática configura objetos gerenciados pelo Spring com base no que está presente no caminho de classes e no ambiente. Ela elimina a configuração manual de @Bean para integrações comuns.
A anotação @SpringBootApplication
@SpringBootApplication é uma combinação de @Configuration, @EnableAutoConfiguration e @ComponentScan. Ela ativa a configuração automática e a varredura de componentes.
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}Como funciona a configuração automática
O Spring Boot verifica META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (Spring Boot 3) em busca de uma lista de classes de configuração automática. Cada classe é aplicada condicionalmente.
// Spring Boot 3 imports file:
// org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
// org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration@ConditionalOnClass e @ConditionalOnMissingBean
As classes de configuração automática usam anotações @Conditional para serem aplicadas somente quando condições específicas são atendidas — por exemplo, quando uma classe está no caminho de classes ou quando um objeto gerenciado ainda não foi definido.
@AutoConfiguration
@ConditionalOnClass(DataSource.class)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration {
@Bean
public DataSource dataSource(DataSourceProperties props) {
return DataSourceBuilder.create().build();
}
}Inicializadores do Spring Boot
Um inicializador é um conjunto organizado de descritores de dependências. Adicionar spring-boot-starter-web ao seu projeto inclui Spring MVC, Tomcat, Jackson e suas configurações automáticas, sem exigir uma busca manual por dependências.
// 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"
}Inicializadores comuns
Principais inicializadores: starter-web (REST + Tomcat), starter-data-jpa (JPA + Hibernate), starter-security, starter-test (JUnit + Mockito), starter-actuator (saúde/medidas).
Substituindo a configuração automática
Defina seu próprio @Bean do mesmo tipo para dar prioridade a ele em relação aos objetos configurados automaticamente. @ConditionalOnMissingBean garante que o objeto configurado automaticamente só seja criado se o seu estiver ausente.
// Override auto-configured ObjectMapper:
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.registerModule(new JavaTimeModule());
}
}Excluindo a configuração automática
Exclua classes específicas de configuração automática que não deseja usar — isso é útil quando um inicializador inclui algo que o senhor deseja configurar manualmente.
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
SecurityAutoConfiguration.class
})
public class MyApp { ... }Criando seu próprio inicializador
Crie um módulo de inicialização com uma classe de configuração automática e registre-o em META-INF/spring/....AutoConfiguration.imports. Outros projetos que incluírem seu inicializador obterão seus objetos automaticamente.
// my-starter/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
// com.example.MyLibraryAutoConfigurationDepurando a configuração automática
Execute com a opção --debug ou defina logging.level.org.springframework.boot.autoconfigure=DEBUG para ver um "CONDITIONS EVALUATION REPORT" que lista quais configurações automáticas foram aplicadas ou excluídas e por quê.
java -jar myapp.jar --debug
# Or in application.properties:
# logging.level.org.springframework.boot.autoconfigure=DEBUGPonto de acesso /conditions do Actuator
Ative spring-boot-starter-actuator e disponibilize o ponto de acesso /actuator/conditions para ver o relatório de avaliação da configuração automática durante a execução, sem reiniciar.
# application.properties:
management.endpoints.web.exposure.include=conditions
# Then:
curl http://localhost:8080/actuator/conditionsVerificação rápida
Qual anotação faz com que um objeto seja criado somente se nenhum objeto desse tipo já estiver definido?
Recapitulação
A configuração automática usa anotações condicionais para configurar objetos com base no caminho de classes e nos objetos já existentes. Os inicializadores agrupam dependências e configuração automática. Substitua configurações com seus próprios objetos. Exclua configurações indesejadas. Depure com --debug.
Perguntas Frequentes
A aula “Autoconfiguração e starters do Spring Boot” é grátis?
Sim — o texto completo de “Autoconfiguração e starters do Spring Boot” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “Autoconfiguração e starters do Spring Boot”?
Entenda como o Spring Boot configura beans automaticamente com base nas dependências do classpath e nas anotações condicionais. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Autoconfiguração e starters do Spring Boot”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Autoconfiguração e starters do Spring Boot
- Propriedades da aplicação e perfis
- Ligação de beans: @Component, @Service, @Repository
- Injeção por construtor e dependências circulares