在已搭建的SpringBoot項目中,即使沒有創建任何的類,該項目也是可以正常啟動的,因為其已經創建了一個啟動類,也就是項目的入口。
上述代碼中有一個注解:@SpringBootApplication
- @SpringBootApplication
通過@SpringBootApplication注解的源碼可以發現,其源碼中有三個特殊注解@SpringBootConfiguration
、@EnableAutoConfiguration
和@ComponentScan
,而@SpringBootApplication
注解其實就是一個組合注解,主要就是將上述的三個注解的功能組裝到待一起使用。了解了上述的三個注解的作用,那么就清楚@SpringBootApplication
的具體作用了。
@SpringBootConfiguration
該注解是一個類級別的注解,提示被注解的類提供了應用程序配置,即標注當前類是配置類。該注解會將當前類中聲明的一個或者多個@Bean
注解標注的方法的實例納入Spring容器中,並且實例名就是方法名。
@EnableAutoConfiguration
該注解同樣是一個類級別注解,其作用是啟動自動配置,幫助SpringBoot將所有符合條件的配置加載到SpringBoot創建並且使用的Ioc容器中。
首先@AutoConfigurationPackage
注解的作用是將被該注解的類所在的package作為自動配置package進行管理。
其次@Import(AutoConfigurationImportSelector.class)
的作用是使用Import自動導入所有符合自動配置條件的Bean定義並加載到IOC容器。
AutoConfigurationImportSelector
類,自動配置導入查找,主要是為了在啟動時加載SpringBoot的配置文件。
@ComponentScan
自動掃描組件,默認掃描該注解標注的類所在的包下面的所有配置類。