@SpringBootApplication là meta-annotation gộp 3 annotation hay dùng nhất:
| Annotation | Tác dụng |
|---|---|
@Configuration | Class là nguồn bean definition |
@EnableAutoConfiguration | Bật Spring Boot auto-configuration |
@ComponentScan | Scan component từ package hiện tại trở xuống |
java
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
// Tương đương:
// @Configuration
// @EnableAutoConfiguration
// @ComponentScan(basePackages = "com.example")Tùy chỉnh: exclude auto-config cụ thể:
java
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)Lưu ý: đặt class này ở root package (com.example) để @ComponentScan quét hết sub-package.
Đặt sai → bean không được scan.
@SpringBootApplication is a meta-annotation combining three commonly used annotations:
| Annotation | Effect |
|---|---|
@Configuration | Class is a bean definition source |
@EnableAutoConfiguration | Enables Spring Boot auto-configuration |
@ComponentScan | Scans components from the current package downward |
java
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
// Equivalent to:
// @Configuration
// @EnableAutoConfiguration
// @ComponentScan(basePackages = "com.example")Customization: exclude specific auto-configs:
java
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)Note: place this class at the root package (com.example) so @ComponentScan covers all sub-packages.
Wrong placement → beans not scanned.