天天看點

springboot-02-自動裝配了解

springboot的項目在建立時會自動設定一個入口:

SpringbootConfigApplication      

注解@SpringBootApplication辨別這是一個springboot應用。同時,它還有很多子注解,這些子注解包含了自動裝配功能。

靜态方法run()運作時,啟動該應用,也有可能是一個服務,這根據項目配置檔案,是否由web依賴。

package springbootconfig;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springbootconfig.wang.pojo.User;

@SpringBootApplication
public class SpringbootConfigApplication {

    public static void main(String[] args) {

        SpringApplication.run(SpringbootConfigApplication.class, args);

    }

}
           

 @SpringBootApplication自動裝配了解:

由AutoConfigurationImportSelector類實作

根據源碼,我們可以看到自動裝配最終也是讀取配置檔案,這個配置檔案的路徑是

spring-boot-autoconfigure\2.2.6.RELEASE\spring-boot-autoconfigure-2.2.6.RELEASE.jar!\META-INF\spring.factories

源碼自動裝配配置擷取步驟:

springboot-02-自動裝配了解

spring.fatories中包含了所有自動裝配的類,這些類辨別各個功能子產品.這些類中有注解@ConditionXXX 如果滿足條件時,就會導入該功能。

以WebMvcAutoConfiguration為例:由于Servlet.class,DispatcherServletet等類沒有導入。它也不會自動裝配。

springboot-02-自動裝配了解

現在我在pom.xml中添加web依賴:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
           

可以看到已經滿足自動裝配條件:

當運作run()就是開啟一個web服務。前台可以通路。

springboot-02-自動裝配了解
springboot-02-自動裝配了解

繼續閱讀