【狂神springboot筆記】SpringBoot自動裝配原理和啟動
阿新 • • 發佈:2022-04-13
1、啟動器
springboot-boot-starter-xxx:就是spring-boot的場景啟動器
spring-boot-starter-web:幫我們匯入了web模組正常執行所依賴的元件;
SpringBoot將所有的功能場景都抽取出來,做成一個個的starter (啟動器),只需要在專案中引入這些starter即可,所有相關的依賴都會匯入進來 , 我們要用什麼功能就匯入什麼樣的場景啟動器即可 ;我們未來也可以自己自定義 starter;
2、主程式
package com.wcy; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Springboot02WebApplication { public static void main(String[] args) { SpringApplication.run(Springboot02WebApplication.class, args); } }
2.1、SpringBootConfiguration
點進去SpringBootApplication
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} ), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class} )} )
點進 SpringBootConfiguration
// 點進去得到下面的 @Component
@Configuration
public @interface SpringBootConfiguration {}
@Component
public @interface Configuration {}
這裡的 @Configuration,說明這是一個配置類 ,配置類就是對應Spring的xml 配置檔案;
裡面的 @Component 這就說明,啟動類本身也是Spring中的一個元件而已,負責啟動應用!
2.2、EnableAutoConfiguration
以前我們需要自己配置的東西,而現在SpringBoot可以自動幫我們配置 ;@EnableAutoConfiguration告訴SpringBoot開啟自動配置功能,這樣自動配置才能生效;
2.3、spring.factories
這個檔案就是自動配置的根源所在
3、SpringApplication