首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot启动原理

背景 1> 大家都知道SpringBoot是通过main函数启动的,这里面跟踪代码到处都没有找到while(true),为什么启动后可以一直跑?...3> 传统的web容器比如jetty本质上是直接通过java start.jar 来启动,之后来加载spring上下文的,SpringBoot通过main函数是怎么来启动web容器的呢?...问题1分析 问题1很简单,启动后一直跑是因为启动了线程池。原理就是有非deamon的线程在跑。Java虚拟机规范定义要等所有用户线程都运行完才会退出。 所以这个原理就和下面启动线程池一样 ?...问题3分析 第三个问题是传统的web容器比如jetty本质上是直接通过java start.jar 来启动,之后来加载spring上下文的,SpringBoot通过main函数是怎么来启动web容器。...而容器启动的基本原理就是创建个线程池和网络套接字。用线程去处理套接字读写的内容。 总结 文本用带有少许说明的三个问题开场展开论述,实际是使用了麦肯锡大法中的SCQA架构。

77360
您找到你想要的搜索结果了吗?
是的
没有找到

SpringBoot启动流程分析原理(一)

很多程序员都感慨SpringBoot的到来大大解放了生产力,但是也有聪明的程序猿会多思考一下下,SpringBoot是怎么做到的约定的配置?它配置在了哪里?...又是怎么启动的作用等等一系列的问号在跟女朋友花前月下的时候,依然会时不时冒出来。...我们跟着 SpringBoot的源码来探究它的启动流程,首先,先找到这个应用程序的入口主方法,在上面打一个断点: 启动之后,F7进入到 run()方法,我的电脑是点击F7(Step into)...启动过程中初始化SpringApplication 的过程。...这篇文章主要是给大家说了下SpringBoot 启动过程中初始化SpringApplication的流程,大致可以分为四个步骤∶ 推演web应用的类型(如果没有加web依赖类型NONE) 初始化 ApplicationContextInitializer

11210

一文搞懂springboot启动原理

SpringBoot为我们做的自动配置,确实方便快捷,但一直搞不明白它的内部启动原理,这次就来一步步解开SpringBoot的神秘面纱,让它不再神秘。 ?...启动类,整个SpringBoot应用依然可以与之前的启动类功能对等: @Configuration@EnableAutoConfiguration@ComponentScanpublic class Application...社区推荐使用基于JavaConfig的配置形式,所以,这里的启动类标注了@Configuration之后,本身其实也是一个IoC容器的配置类。...注:所以SpringBoot启动类最好是放在root package下,因为默认不指定basePackages。...以上图为例,DemoApplication是和demo包同级,但是demo2这个类是DemoApplication的父级,和example包同级 也就是说,DemoApplication启动加载的Bean

43610

springboot启动流程及原理_精馏的原理及流程

1.springboot启动类入口 @SpringBootApplication @ComponentScan(basePackages ={"cn"}) public class SpringBootDemo...注:所以SpringBoot启动类最好是放在root package下,因为默认不指定basePackages 3) @EnableAutoConfiguration 此注解顾名思义是可以自动配置,...所以应该是springboot中最为重要的注解。...该方法在springboot启动流程——bean实例化前被执行,返回要实例化的类信息列表; 如果获取到类信息,spring可以通过类加载器将类加载到jvm中,现在我们已经通过spring-boot的starter...启动流程概览图 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171544.html原文链接:https://javaforall.cn

20420

SpringBoot启动机制(starter机制)核心原理详解

作者:MyBug 一、前言 使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。...本文的目的就是一步步分析springboot启动过程,这次主要是分析springboot特性自动装配。...…… 花在搭建一个初始项目,可能一个小时就过去了或者半天救过了,但是用了SpringBoot之后一切都会变得非常便捷,下面我们首先来分析一下SpringBoot的起步依赖以及自动配置。...4.Bean的发现 springboot默认扫描启动类所在的包下的主类与子类的所有组件,但并没有包括依赖包的中的类,那么依赖包中的bean是如何被发现和加载的?...spring容器,这就是前文所说的springboot默认扫描启动类所在的包下的主类与子类的所有组件。

2.1K40

SpringBoot之旅-启动原理及自定义starter

一、引言 SpringBoot的一大优势就是Starter,由于SpringBoot有很多开箱即用的Starter依赖,使得我们开发变得简单,我们不需要过多的关注框架的配置。...在此之前我们再深入的了解下SpringBoot启动原理。而后再将如何自定义starter。...二、 启动原理 要想了解启动原理,我们可以Debug模式跟着代码一步步探究,我们从入口方法开始: public static ConfigurableApplicationContext run(Class...第十三步:整个SpringBoot应用启动完成以后返回启动的ioc容器。 这就是run的全部过程,想要更详细的了解还需自己去看源码。...,配置在META-INF/spring.factories,启动器的大致原理是如此,而启动器的实际设计是有一定模式的,就是启动器模块是一个空 JAR 文件,仅提供辅助性依赖管理,而自动配置模块应该再重新设计一个

19940

程序员进阶之路 --- SpringBoot 启动原理剖析

所以,如果我们使用如下的SpringBoot启动类,整个SpringBoot应用依然可以与之前的启动类功能对等: @Configuration @EnableAutoConfiguration @ComponentScan...---- 本文以调试一个实际的SpringBoot启动程序为例,参考流程中主要类类图,来分析其启动逻辑和自动化配置原理。 ?...总览 上图为SpringBoot启动结构图,我们发现启动流程主要分为三个部分: 第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器; 第二部分实现了应用具体的启动方案...Bean,至此,通过SpringBoot启动的程序已经构造完成,接下来我们来探讨自动化配置是如何实现。...该方法在springboot启动流程——bean实例化前被执行,返回要实例化的类信息列表。

39930
领券