1. 程式人生 > 其它 >【狂神springboot筆記】SpringBoot自動裝配原理和啟動

【狂神springboot筆記】SpringBoot自動裝配原理和啟動

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