servlet請求響應物件,cookie&session
阿新 • • 發佈:2020-12-10
SprigBoot自動配置原理
簡要總結:
SpringBoot啟動的時候會通過@EnableAutoConfiguration註解找到META-INF/spring.factories配置檔案中的所有自動配置類,並對其進行載入,而這些自動配置類都是以AutoConfiguration結尾來命名的,它實際上就是一個JavaConfig形式的Spring容器配置類,它能通過以Properties結尾命名的類中取得在全域性配置檔案中配置的屬性如:server.port,而XxxxProperties類是通過@ConfigurationProperties註解與全域性配置檔案中對應的屬性進行繫結的。
自動配置流程
- @SpringBootApplication
-
@SpringBootConfiguration ---表明這是一個配置類
- @Configuration ---表明這是一個配置類
-
@EnableAutoConfiguration ---開啟自動配置
-
@AtuoConfigurationPackages ---指示包含註釋類的程式包應向AutoConfigurationPackages註冊。
- @Import(AutoConfigurationPackages.Registrar.class) --->靜態內部類,用於儲存匯入的基本包
-
@Import(AutoConfigurationImportSelector.class) 重點
selectImports(AnnotationMetadata annotationMetadata){ *** AutoConfigurationEntry autoConfigurationEntry = getAutoConfigurationEntry(autoConfigurationMetadata, annotationMetadata); *** } | | 呼叫 V protected AutoConfigurationEntry getAutoConfigurationEntry(AutoConfigurationMetadata autoConfigurationMetadata, AnnotationMetadata annotationMetadata) { *** List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes); *** } | | 呼叫 V protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { *** List<String> configurations = SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); *** }
-
-
@ComponentScan --->掃描當前類所在包及其子包
-