在很久很久以前,哈哈,a long story.
許多Spring Boot開發人員總是用@Configuration、@EnableAutoConfiguration和@ComponentScan來註釋他們的主類。由於這些註釋經常一起使用(特別是如果您遵循上面的最佳實踐),SpringBoot提供了一個方便的@SpringBootApplication替代方案。
@SpringBootApplication註釋等價於使用@Configuration、@EnableAutoConfiguration和@ComponentScan的默認屬性:
![SpringBootApplication這個最基本的註釋其實是由三個部分組成的](http://p2.ttnews.xyz/loading.gif)
以下是@SpringBootApplication註釋中keyijieshou接受的參數:
Exclude:從自動配置中排除類列表。
excludeNames:從自動配置中排除完全限定類名的列表。這個參數是從spring boot 1.3.0開始添加的。
scanBasePackageClasses:提供必須應用於@ComponentScan的類的列表。
scanBasePackages:提供必須應用於@ComponentScan的包的列表。這個參數是從spring boot 1.3.0開始添加的。
說到這了,我們順便來說一下application.properties文件。
與標準Spring框架相比,Spring Boot為我們提供的一個優勢是"配置更少"。Spring Boot將其典型的"約定優於配置"的方法應用於屬性文件。Spring boot引入了名為"application.properties"的默認應用程序配置屬性文件。而且不需要任何基於spring的配置即可自動檢測。我們需要把屬性文件放置在maven項目的"src/main/resources"目錄中。
通過使用這個默認文件,我們不必顯式地註冊PropertySource,甚至不必提供到屬性文件的路徑。
Spring boot在application.properties文件內指定了應用程序內部的各種常見默認屬性,以此來支持日誌,AOP,身份識別,Hibernat, JPA, JMX,電子郵件等屬性。我們不需要在所有的情況下指定所有的默認屬性。我們可以按需指定它們。這就是spring減少基於XML的配置並將其更改為簡單屬性的方式。
您可以在這裡找到spring boot提供的所有默認屬性。(不可以發鏈接,大家可以參考下面的地址)
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
閱讀更多 覺猿 的文章