zoukankan      html  css  js  c++  java
  • SpringBoot-02-主启动类之SpringApplication

    2.3 SpringApplication

    不简单的方法

    看上去是简单的运行了一个main方法,实际上是开启了一个服务:

    @SpringBootApplication
    public class Springboot01HelloApplication {
    
        public static void main(String[] args) {
            //将SpringBoot应用启动
            SpringApplication.run(Springboot01HelloApplication.class, args);
        }
    
    }
    

    该方法主要分为两个部分:

    1. SpringApplication的实例化
    2. run方法的执行

    SpringApplication

    这个类主要做一下四个事情:

    1. 推断应用的类型是普通项目还是web项目;
    2. 查找并加载所有可用初始化器,设置到initializers属性中;
    3. 找出所有的应用程序监听器,设置到listeners属性中;
    4. 推断并设置main方法的定义类,找到运行的主类;

    查看其构造器

    public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {
       ...
       this.webApplicationType = WebApplicationType.deduceFromClasspath();
       setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
       setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
       this.mainApplicationClass = deduceMainApplicationClass();
    }
    

    run方法流程分析

    在这里插入图片描述

  • 相关阅读:
    css 元素垂直居中
    win7定时关机
    tabel使用总结
    Js获取当前日期时间及其它操作
    织梦dedecms自定义表单设置必填项
    css字体文本格式 鼠标样式
    css溢出文本显示省略号
    java注解学习
    自定义JSON返回字段
    Spring-解决请求中文乱码问题
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13706229.html
Copyright © 2011-2022 走看看