您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

聊聊 Springboot 启动原理

时间:2023-06-30 14:28:42  来源:java知路  作者:


Spring Boot的启动原理是通过SpringApplication类来实现的。具体流程如下:

创建一个应用程序的SpringApplication实例。

分析应用程序的上下文环境(包括JAVA系统属性、环境变量、命令行参数等),并将其转化为一个可配置的ApplicationContextInitializer列表。

创建一个可配置的Environment实例,并且将其作为参数传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

创建一个可配置的ResourceLoader实例,并将其传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

调用ApplicationContextInitializer列表中每个实例的initialize方法,对应用程序的上下文环境进行初始化。

创建一个可配置的BeanDefinitionRegistry实例,并将其传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

创建一个可配置的ApplicationContext实例,并且将其作为参数传递给创建的ApplicationContextInitializer列表中的每个实例进行初始化。

调用ApplicationContextInitializer列表中每个实例的initialize方法,对ApplicationContext进行初始化。

注册应用程序的主类(如果存在)作为一个bean,并调用其run方法来启动应用程序。

如果应用程序的主类是一个ServletInitializer(用于Web应用程序),则通过调用其onStartup方法来启动Web容器。

使用Spring的DispatcherServlet来处理HTTP请求。

如果应用程序的主类实现了CommandLineRunner接口,则调用其run方法,以便在应用程序启动后执行一些额外的逻辑。

Spring Boot的启动原理是通过创建SpringApplication实例来分析应用程序的上下文环境并初始化ApplicationContext,然后通过调用应用程序的主类来启动应用程序,同时处理Web请求和执行一些额外的逻辑。



Tags:Springboot   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
公司用了六年的 SpringBoot 项目部署方案,稳得一批!
本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作。 profiles指定不同环境的配置 maven-assembly-plugin打发布压...【详细内容】
2024-01-10  Search: Springboot  点击:(163)  评论:(0)  加入收藏
SpringBoot 中的热部署和热加载
在Spring Boot开发调试中,如果我们每修改一行代码都需要重启调试,可能会比较耗时。Spring Boot团队针对这个问题提供了spring-boot-devtools(简称:Devtools)插件,试图提高开发和调...【详细内容】
2023-11-06  Search: Springboot  点击:(250)  评论:(0)  加入收藏
SpringBoot 调用外部接口的四种方式
1、简介在Spring-Boot项目开发中,当本模块的代码需要访问外面模块接口,或外部url链接的需求的时候, 需要使用网络连接调用,下面提供了四种方式(排除dubbo的方式)供大家选择。方式...【详细内容】
2023-11-06  Search: Springboot  点击:(315)  评论:(0)  加入收藏
Springboot 框架中事件监听和发布机制详细介绍
事件监听和发布是Spring Framework中的一种机制,用于实现松散耦合的组件之间的通信。下面是事件监听和发布的详细过程:事件发布的过程: 创建事件对象:首先,您需要创建一个事件类,...【详细内容】
2023-11-02  Search: Springboot  点击:(264)  评论:(0)  加入收藏
Springboot 中的 PropertySource 管理配置属性的机制
Spring Framework 中的 PropertySource 是一种用于管理配置属性的机制,它允许你将配置信息从各种来源(如属性文件、环境变量、数据库等)加载到应用程序中。在 Spring 中,Propert...【详细内容】
2023-10-29  Search: Springboot  点击:(228)  评论:(0)  加入收藏
如何将本地jar文件打包到 springboot 执行jar文件中
这一系列课程将包含Spring Boot 许多关键的技术和工具,包括 Mybatis-Plus、Redis、Mongodb、MinIO、Kafka、MySQL、消息队列(MQ)、OAuth2 等相关内容。如何将本地jar文件打包到...【详细内容】
2023-10-27  Search: Springboot  点击:(271)  评论:(0)  加入收藏
Java面试题之SpringBoot 框架
谈谈怎么理解 SpringBoot 框架 Spring Boot 是 Spring 开源组织下的子项目, 是 Spring 组件一站式解决方案, 主要是 简化了使用 Spring 的难度, 简省了繁重的配置, 提供了各种启...【详细内容】
2023-09-28  Search: Springboot  点击:(212)  评论:(0)  加入收藏
SpringBoot 并发编程学习历程
本教程大概目录: 模拟单线程情节 用Callable实现 并发编程 用DeferedResult实现异步处理###模拟单线程情节。/** * Created by Fant.J. */@RestController@Slf4jpublic class...【详细内容】
2023-09-27  Search: Springboot  点击:(207)  评论:(0)  加入收藏
Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。我之前的HTTP开发是用apache的Htt...【详细内容】
2023-09-14  Search: Springboot  点击:(317)  评论:(0)  加入收藏
16个SpringBoot 扩展接口
1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机...【详细内容】
2023-08-28  Search: Springboot  点击:(134)  评论:(0)  加入收藏
▌简易百科推荐
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(8)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(12)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(54)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(47)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(39)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(50)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(68)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(86)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(86)  评论:(0)  加入收藏
花 15 分钟把 Express.js 搞明白,全栈没有那么难
Express 是老牌的 Node.js 框架,以简单和轻量著称,几行代码就可以启动一个 HTTP 服务器。市面上主流的 Node.js 框架,如 Egg.js、Nest.js 等都与 Express 息息相关。Express 框...【详细内容】
2024-01-16  程序员成功  微信公众号  Tags:Express.js   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条