美文网首页
springboot知识点2

springboot知识点2

作者: rice88 | 来源:发表于2022-05-26 00:17 被阅读0次

    原发布于个人公众号 rice 若初见似少年 2020-09-12 20:28


    springboot自动装配

    spring framework时代的装配标签@Import @ComponentScan

    springboot时代 @EnableAutoConifguration

    解析工作由以下类完成publicclassAutoConifgurationImportSelectorimplementsDeferredImportSelector{@OverridepublicString[]selectImports(AnnotationMetadata annotationMetadata){    .......  }}


    通过SpringFactoriesLoader读取META-INF/spring.factories指定的类的实现类

    通过注解属性exclude和excludeName来排除配置class

    实现接口AutoConfigurationImportListener(springboot1.5引入)可以监听到配置class的事件,在配置class读取完成后触发

    配置class排序@AutoConfigurationOrder @AutoConfigurationBefore @AutoConfigurationIAfter


    自定义springboot自动装配


    @Conditonal派生的注解@ConditonalOnClass@ConditonalOnMissingClass@ConditonalOnBean@ConditonalOnMissingBean@ConditonalOnProperty@ConditonalOnResource@ConditonalOnWebApplication@ConditonalOnNotWebApplication@ConditonalOnExpression


    SpringApplication生命周期

    1.初始化阶段

    构造阶段

    配置阶段

    2.运行阶段

    准备阶段

    上下文启动阶段

    上下文启动后阶段

    3.结束阶段

    正常结束

    异常结束


    构造过程

    获取web应用的类型,webApplicationType=SERVLET/REACTIVE/NONE

    加载spring应用上下文初始化器(ApplicationContextInitialier)

    加载spring应用事件监听器(ApplicationListener)

    获取应用引导主类 mainApplicationClass


    配置阶段

    该阶段是前一阶段的补充,主要是提供SpringApplication和SpringApplicationBuilder的API给开发者使用。


    运行准备阶段

    从run方法到prepareContext


    理解SpringApplicationRunListener监听方法:starting()应用启动environmentPrepared环境准备完成contextPrepared上下文准备完成contextLoaded上下文加载完成started上下文已启动,bean已初始化完成running应用运行中failed应用运行失败EventPublishingRunListener是spring内建唯一实现理解Spring事件监听机制理解SpringBoot事件监听机制


    1.封装入参为ApplicationArguments

    2.准备运行环境ConfigurableEnvironment

    3.创建应用上下文ConfigurableApplicationContext

    4.准备应用上下文prepareContext

    4.1.设置运行环境

    4.2.上下文后置处理

    4.3.应用上下文初始化器ApplicationContextInitialier

    4.4.执行SpringApplicationRunListener.contextPrepared

    4.5.注册SpringBoot bean

    4.6.合并Spring应用上下文配置源

    4.7.加载Spring应用上下文配置源

    4.8.回调SpringApplicationRunListener.contextLoaded


    上下文启动阶段

    由refreshContext方法实现


    上下文启动后阶段

    由afterRefresh方法实现,提供未实现的方法给开发者做扩展实现


    正常结束


    异常结束

    FailureAnalyzers

    FailureAnalysisReporter


    应用退出

    注册shutdownHook

    相关文章

      网友评论

          本文标题:springboot知识点2

          本文链接:https://www.haomeiwen.com/subject/lizyprtx.html