SpringBoot 2.0.X官方文檔-007-使用@SpringBootApplication註解
許多SpringBoot開發人員喜歡他們的應用程序使用自動配置、組件掃描並能夠在“應用程序類”上定義額外的配置。可以使用一個@SpringBootApplication註解來啓用這三個特性,即:
- @EnableAutoConfiguration:SpringBoot 2.0.X官方文檔-006-3-自動配置
- @ComponentScan:@Component在應用程序所在的程序包上啓用掃描(請參閱SpringBoot 2.0.X官方文檔-006-1-構建代碼)
- @Configuration:允許在上下文中註冊額外的bean或導入其他配置類
@SpringBootApplication註解相當於使用@Configuration、@EnableAutoConfiguration和@ComponentScan的默認屬性,如下面的示例所示:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication還提供了別名定製的屬性 @EnableAutoConfiguration和@ComponentScan。
這些特性中沒有一個是強制性的,您可以選擇使用它支持的任何特性來替換這個單一註解。例如,您可能不想在應用程序中使用組件掃描:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@EnableAutoConfiguration
@Import({ MyConfig.class, MyAnotherConfig.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在本例中,應用程序與任何其他SpringBoot應用程序一樣,只是不會自動檢測到@Component-annotated類,並且顯式地導入用戶定義的bean(參見@Import)。