0Pricing
Java Academy · Aula

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.MyLibraryAutoConfiguration

Depurando 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=DEBUG

Ponto 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/conditions

Verificaçã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

  1. Autoconfiguração e starters do Spring Boot
  2. Propriedades da aplicação e perfis
  3. Ligação de beans: @Component, @Service, @Repository
  4. Injeção por construtor e dependências circulares
← Voltar para Java Academy