Auto-configuration tự configure bean dựa trên dependency trong classpath — không cần khai báo thủ công.
Cơ chế:
1. @EnableAutoConfiguration scan file META-INF/spring/...AutoConfiguration.imports (Boot 3) / spring.factories (Boot 2).
2. Mỗi entry là @Configuration có @Conditional guard:
java
@AutoConfiguration
@ConditionalOnClass(DataSource.class) // chỉ khi driver có trên classpath
@ConditionalOnMissingBean(DataSource.class) // chỉ khi user chưa tự định nghĩa
public class DataSourceAutoConfiguration { ... }3. Condition pass → tạo bean; user tự define bean → @ConditionalOnMissingBean chặn auto-config.
Debug: chạy với --debug → Spring in auto-config report (pass/fail từng class). Tự viết: tạo file .imports, khai config class với @ConditionalOn* phù hợp.