CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-springframework-boot--spring-boot-autoconfigure

Spring Boot AutoConfigure provides auto-configuration capabilities that automatically configure Spring applications based on jar dependencies present on the classpath

Pending
Overview
Eval results
Files

Spring Boot AutoConfigure

Spring Boot AutoConfigure provides automatic configuration of Spring applications based on classpath dependencies. It intelligently configures beans and application contexts, reducing boilerplate while allowing full customization.

Package Information

  • Group ID: org.springframework.boot
  • Artifact ID: spring-boot-autoconfigure
  • Version: 4.0.2
  • Language: Java
  • Minimum Java Version: 17

Installation

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure</artifactId>
    <version>4.0.2</version>
</dependency>
implementation 'org.springframework.boot:spring-boot-autoconfigure:4.0.2'

Quick Start

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

The @SpringBootApplication annotation automatically:

  • Enables auto-configuration based on classpath
  • Scans components in current package and sub-packages
  • Binds configuration properties

Core Concepts

Auto-Configuration

Automatically configures Spring beans based on classpath dependencies and existing beans. Configurations can be excluded when not needed.

Conditional Annotations

Control when beans are registered based on:

  • Classpath: @ConditionalOnClass, @ConditionalOnMissingClass
  • Beans: @ConditionalOnBean, @ConditionalOnMissingBean
  • Properties: @ConditionalOnProperty
  • Environment: @ConditionalOnJava, @ConditionalOnCloudPlatform
  • Web: @ConditionalOnWebApplication

Configuration Properties

Centralized configuration through properties classes:

  • SSL/TLS bundles
  • Task execution and scheduling
  • Web resources and error handling
  • Data repository settings

Quick Reference

Primary Annotations

AnnotationPurposeCommon Use
@SpringBootApplicationMain application annotationBootstrap application
@EnableAutoConfigurationEnable auto-configurationCustom configuration classes
@AutoConfigurationDefine auto-configurationCreate custom auto-configs
@ConditionalOnClassCheck class presenceFeature detection
@ConditionalOnBeanCheck bean presenceConditional bean creation
@ConditionalOnPropertyCheck property valueFeature flags

Key Capabilities

CapabilityDescriptionReference
Core AnnotationsMain auto-configuration annotationsReference
Conditional Logic20+ conditional annotationsReference
SSL/TLSSSL bundle configurationReference
Task ExecutionThread pool managementReference
Web ConfigError handling, resourcesReference
Data RepositoriesRepository auto-configurationReference
Service ConnectionsExternal service connectionsReference
TemplatesTemplate engine supportReference

Getting Started

For New Users

  1. Quick Start Guide - Get up and running in minutes
  2. Common Patterns - Typical usage scenarios
  3. Configuration Basics - Essential configuration

For Advanced Users

  1. Custom Auto-Configurations - Create your own
  2. Advanced Conditions - Complex conditional logic
  3. Edge Cases - Handle special scenarios

Common Tasks

Exclude Auto-Configurations

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class Application { }

Create Custom Auto-Configuration

@AutoConfiguration
@ConditionalOnClass(MyService.class)
public class MyAutoConfiguration {
    @Bean
    @ConditionalOnMissingBean
    public MyService myService() {
        return new MyService();
    }
}

Enable Debug Mode

debug=true

Documentation Structure

Guides (Step-by-Step)

Examples (Real-World Usage)

Reference (Detailed Specs)

Key Features

Ordering Control

Control when auto-configurations apply:

  • @AutoConfigureBefore - Run before specified configs
  • @AutoConfigureAfter - Run after specified configs
  • @AutoConfigureOrder - Explicit ordering

Conditional Registration

Fine-grained control over bean creation:

  • Check classpath contents
  • Verify bean presence/absence
  • Test property values
  • Detect runtime environment
  • Validate resource availability

Configuration Properties

Type-safe configuration binding:

  • SSL/TLS bundles (PEM and JKS)
  • Task execution pools
  • Web error handling
  • Resource caching
  • Message sources

Best Practices

  1. Use Type-Safe Conditions: Prefer @ConditionalOnClass over @ConditionalOnExpression
  2. Allow User Overrides: Always use @ConditionalOnMissingBean for customizable beans
  3. Order Conditions: Place fast conditions first (classpath before bean checks)
  4. Test Thoroughly: Use ApplicationContextRunner for testing
  5. Document Behavior: Comment complex conditional logic

Troubleshooting

Debug Auto-Configuration

Enable debug mode to see condition evaluation:

debug=true

Common Issues

  • Circular Dependencies: Use @Lazy or restructure dependencies
  • Class Not Found: Use class name strings in @ConditionalOnClass
  • Property Not Resolved: Check property prefix (no trailing dot)

See Troubleshooting Guide for detailed solutions.

Performance Tips

  1. Condition Ordering: Fast conditions first (classpath → property → bean)
  2. Class Loading: Use class names to avoid early loading
  3. Bootstrap Mode: Use DEFERRED or LAZY for large applications
  4. Bean Registration: Minimize conditional checks in hot paths

Additional Resources

  • Spring Boot Reference - Official documentation
  • Common Properties - Configuration reference
  • Migration Guide - Upgrading from earlier versions

Support

For issues and questions:

Install with Tessl CLI

npx tessl i tessl/maven-org-springframework-boot--spring-boot-autoconfigure
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.springframework.boot/spring-boot-autoconfigure@4.0.x