zoukankan      html  css  js  c++  java
  • ________________初学springboot11

    Springboot的运行流程

    1、判断是否是web环境

    2、加载左右Classpath下的META-INF/spring.factories  ApplicationContextInitializer 

    3、加载所有classpath下的META-INF/spring.factories  ApplicationListener

    4、推断main方法所在类

    5、开始执行run方法

    6、设置Java.awt.headless系统变量

    7、加载所有classpath下面META-INF/spring.factories springApplicationRunListener

    8、执行所有SpringApplicationRunListener的started方法

    9、实例化SpringApplicationArguments对象

    10、创建environment

    11、配置environment,主要是把run方法的参数配置到environment

    12、执行所有springApplicationRunlistener的environmentPrepared方法

    13、如果不是web环境,但是死web的environment,则把这个web的environment转换成标准的environment

    14、打印banner

    15、初始化Applicationcontext,如果是web环境,则实例化AnnotationConfigEmbeddedWebApplicationContext对象,否则实例化annotation

    16、如果beanNameGennerator不为空,就把beanNameGenerator对象注入到context里面去

    17、执行所有SpringApplicationRunListener的contextPrepared方法

    18、执行所有springApplicationRunListener的contextPrepared方法

    19、依次往spring容器中注入:ApplicationArgument,banner

    20、加载所有源到context里

    21、执行所有SpringApplicationRunListener的contextPrepared方法

    22、执行所有context的refresh方法,并调用context的registeris的registerShutdown

    23、回调,获取容器中所有appliationRunner,ConnandRunner等接口,然后排序

    24、执行所有springApplicationRunListene的finished方法

    暂存 ,系统默认参数配置

    @SpringBootApplication

    public class App {

    public static void main(String[] args) {

    SpringApplication app=new SpringApplication(App.class);

    Map<String, Object> defaultProperties=new HashMap<>();

    defaultProperties.put("user", "qiqisx");

    defaultProperties.put("password", "4656512.0a");

    app.setDefaultProperties(defaultProperties);

    ConfigurableApplicationContext context=app.run(args);

      ApplicationArguments ag=context.getBean(ApplicationArguments.class);

    System.out.println(ag.getOptionNames());

    System.out.println(context.getEnvironment().getProperty("user"));

    System.out.println(context.getEnvironment().getProperty("password"));

    context.close();

    }

    }

  • 相关阅读:
    update(十)
    perl-basic-数据类型&引用
    R-barplot()
    leetcode-22-string
    Java-basic-7-面向对象
    Java-basic-6-方法
    Java-basic-4-数据类型
    Java-basic-3-运算符-修饰符-循环
    Java-basic-2-
    leetcode-21-knapsack
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9370013.html
Copyright © 2011-2022 走看看