spring boot的run方法运行流程_spring boot run方法-程序员宅基地

技术标签: spring boot  知识点总结  

@SpringBootApplication
public class SpringbootApplication {
    
    public static void main(String[] args) {
    
        //该方法返回一个ConfigurableApplicationContext对象
        //参数一:应用入口的类         参数类:命令行参数
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

SpringApplication.run分析

分析该方法主要分两部分,一部分是SpringApplication的实例化,二是run方法的执行;

SpringApplication
这个类主要做了以下四件事情:

1、推断应用的类型是普通的项目还是Web项目

2、查找并加载所有可用初始化器 , 设置到initializers属性中

3、找出所有的应用程序监听器,设置到listeners属性中

4、推断并设置main方法的定义类,找到运行的主类

查看构造器:

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

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NewBeeMu/article/details/106117686

智能推荐

redis配置问题 sudo:redis-server: command not found / redis-cli shutdown 无法关闭 redis_sudo: redis-server: command not found-程序员宅基地

文章浏览阅读4k次,点赞3次,收藏5次。网上查了很多解决方法,有说未安装gcc编译的,有说redis-server不是全局命令的。这两个确实可能是报错原因,但不是我的原因。我遇到的问题是sudo redis-server 提示未找到指令,而不加sudo就可以正常运行。这其实完全就是sudo中没有相应的命令启动路径罢了。redis-cli shutdown无法关闭redis也是因为这个原因。可以看到shutdown时的报错信息:F..._sudo: redis-server: command not found

Swagger与SpringMVC整合(附源码!!!)_swagger springmvc request-程序员宅基地

文章浏览阅读2.4k次。笔者是做系统开发的,主要工作内容是负责给apk端提供后台接口。以前的时候每出一次版本都要整合一次接口文档,而且还时不时的给apk同事解说各个接口的作用和参数类型等。最近工作相对比较轻松,于是想做一个在线接口测试和生成接口文档的工具。百度后发现了swagger这个工具,看网上的评论感觉还不错,就花了几个小时的时间搭建了这套SpringMVC和Swagger结合的项目。经测试,可以自动生成接口文档,而..._swagger springmvc request

分布式统计计算------逆变换法生成随机数 - R Studio_假设离散型随机变量x的分布率如下,使用逆变换方法产生1000随机数-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏153次。摘要文章目录摘要几个缩写连续型分布情况下离散型分布情况下几个缩写pmf(probability mass function):概率质量函数。离散随机变量在各特定取值上的概率。只有离散型随机变量才有概率质量函数。PDF/pdf(probability density function):概率密度函数,简称密度函数。描述随机变量的输出值,在某个确定的取值点附近的可能性的函数CDF/cdf(cumulatative distributionfunction):累积分布函数,简称分布函数。是概_假设离散型随机变量x的分布率如下,使用逆变换方法产生1000随机数

推荐 130 个令你眼前一亮的网站,总有一个用得着-程序员宅基地

文章浏览阅读1.3k次。文章目录130 余个相见恨晚的超实用网站搞学习找书籍冷知识 / 黑科技写代码资源搜索小工具导航页(工具集)看视频学设计搞文档找图片搞学习CSDN: https://www.csdn.net/TED(最优质的演讲):https://www.ted.com/谷粉学术: https://gfsoso.99lb.net/scholar.html大学资源网:http://www.dxzy16...

详解热备份路由协议(HSRP)-程序员宅基地

文章浏览阅读238次。了解HSRP概述HSRP(热备份路由协议):是思科私有的一种技术,它确保了的那个网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。热备份路由协议为IP网络提供容错和增强的路由选择功能。通过使用一个虚拟的IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。熟悉HSRP组成员HSRP备份有一台活跃路由..._hsrp占先圈的概念

python中数组转矩阵_python实现矩阵和array数组之间的转换-程序员宅基地

文章浏览阅读7.4k次。python 列表、矩阵、数组之间的关系矩阵可以实现多维切片,如: b = m[1:10, 3:20] 但是 多维列表却不可以首先,没见过b = m[1:10, 3:20] 这种写法,小编试了一下有错误 其次,多维列表也是可以切片的。python怎么将数组转换为矩阵?python将数组转换为矩阵,方法如下: 数组转换矩阵: A = mat(s[]) Python的定义: Python是一种面向对象..._python将数组转化为矩阵

随便推点

三只水桶等分水问题_三个桶分水-程序员宅基地

文章浏览阅读3.9k次。转自:http://blog.csdn.net/orbit/article/details/6596521 算法系列之二: 三只水桶等分水问题 有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为5升的空桶,如何利用这两个空桶等分8升水?附加条件是三个水桶都没有体积刻度,也不能使用其它辅助容器。 这是一道经典题目,一般人都可以在一分_三个桶分水

《重构 改善既有代码的设计 2》重新组织函数、数据-程序员宅基地

文章浏览阅读840次,点赞19次,收藏9次。每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

C语言实现青蛙跳台阶_青蛙跳一百个台阶c语言-程序员宅基地

文章浏览阅读470次,点赞2次,收藏3次。C语言,超简单,读过一遍差不多就会了_青蛙跳一百个台阶c语言

数据结构考研笔记之栈与队列(四)栈与队列应用----括号匹配、中缀表达式转前缀后缀问题_中缀表达式转前缀题目-程序员宅基地

文章浏览阅读1.6k次。栈与队列1.括号匹配问题栈例题1例题2-----不匹配例题1例题3-----不匹配例题22. 表达式求值问题例题1.中缀表达式转前缀表达式2.中缀表达式转后缀表达式实现过程:3. 递归:递归产生的问题:1.括号匹配问题栈例题1算法思想:1)初始一个空栈,顺序读入括号。若是右括号,则与栈顶元素进行匹配·若匹配,则弹出栈顶元素并进行下一个元素·若不匹配,则该序列不合法3)若是左括号,则压入栈中4)若全部元素遍历完毕,栈中非空则序列不合法解题:1.首先1、2都是左括号,直接进栈2._中缀表达式转前缀题目

C# 文件监控,任何文件夹或文件修改后 ,如何立即触发监控_c#监控文件夹是否有文件更新-程序员宅基地

文章浏览阅读9.8k次,点赞11次,收藏46次。一、场景有时候,我们需要监控文件夹以及文件的变化,然后做出一些业务处理,这里面,最典型的例子,估计前端攻城狮老熟的,就是各种打包了。那么在C#后端,也会遇到要监控变化的情况。一个文件如何被修改,就会触发什么动作。二、C#中的文件监控可以用钩子函数来处理,这种会处理得让你抓狂,一可能是太多消息事件,你头都大,二估计你不是C/C++的程序员,对win32函数本身就不熟,找资料都要你老费劲了。那么C#中的文件监控还有什么办法呢?C#庞大的类库中,提供了FileSystemWatcher类,该类_c#监控文件夹是否有文件更新

Java(顾客最短等待时间)_java 根据人数 安排最少时间怎么写-程序员宅基地

文章浏览阅读2k次。题目如下:设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti(1<i<n),共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使得平均等待时间达到最小?平均等待时间是n个顾客等待时间的总和除以n。代码如下:package TXSF;import java.util.Scanner;public class ZY { public static vo..._java 根据人数 安排最少时间怎么写