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();

    }

    }

  • 相关阅读:
    kali BEEF-XSS启动报错解决
    kali msfconsole启动报错解决
    unittest详解(三) 简单元素定位
    unittest详解(二) 断言
    unittest详解(一) unittest框架
    selenuim python环境安装
    Locust 脚本练习
    Locust 参数化
    Locust 设置断言
    9-04嵌套事务及事务分类
  • 原文地址:https://www.cnblogs.com/qiqisx/p/9370013.html
Copyright © 2011-2022 走看看