Start here. This is the direct spoken answer to practice first.
Overview
Boot imports conditional configuration that contributes defaults only when the application and classpath match.
Spring Boot auto-configuration imports configuration classes that are guarded by conditions. Those conditions inspect facts such as classes on the classpath, existing or missing beans, properties, resources, and the application type. If the conditions match, the configuration registers common infrastructure beans. Many defaults back off when the application defines its own bean, so auto-configuration is conditional composition rather than code generation or unrestricted component scanning.