一、@EnableAutoConfiguration
這個注釋告訴SpringBoot"猜"你將如何想配置Spring,基於你已經添加jar依賴項。如果spring-boot-starter-web已經添加Tomcat和Spring MVC,這個注釋自動將假設您正在開發一個web應用程序並添加相應的spring設置。
自動配置被設計用來和“Starters”一起更好的工作,但這兩個概念並不直接相關。您可以自由挑選starter依賴項以外的jar包,springboot仍將盡力自動配置您的應用程序。
spring通常建議我們將main方法所在的類放到一個root包下,@EnableAutoConfiguration(開啟自動配置)注解通常都放到main所在類的上面,下面是一個典型的結構布局:
com +- example +- myproject +- Application.java | +- bean | +- Customer.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
使用@EnableAutoConfiguration注解時,必須得配置@ComponentScan(basePackages = "com.example.web, com.example.service"),才能掃描service及web下的類,並進行調用。
二、@SpringBootApplication
使用@SpringbootApplication注解 ,可以解決根類或者配置類(我自己的說法,就是main所在類)頭上注解過多的問題,一個@SpringbootApplication相當於
@Configuration
, @EnableAutoConfiguration
和
@ComponentScan,並具有他們的默認屬性值
查看@SpringBootApplication注解源碼:
@CompoentScan:可以解決根類或者配,告訴Spring哪個package的用注解標識的類會被spring自動掃描並且裝入bean容器
默認情況下是加載和Application類所在同一個目錄下的所有類,包括所有子目錄下的類