springBoot是如何启动的

springBoot的部署

  1. 通过maven插件执行install命令,将项目打包成一个jar文件在target目录下
  2. 执行jar包中的内容, 在服务器上执行java -jar jar包名
  3. 启动成功

jar包内容

org: 存储springboot启动应用的类
BOOT-INF: 存储编译后的代码 和 第三方jar包
META-INF: 存储启动信息,主要信息如下

Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.example.demo.DemoApplication

springBoot启动

java -jar 执行后会启动 org.springframework.boot.loader.JarLauncher 类
这个类会通过 自己编译后的代码 和 第三方jar包所在路径 重写类加载器,通过类加载器反射执行@SpringBootApplication下的main方法 (因jar包和war包启动项目路时存放类的路径不同)

springBoot启动代码导入

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-loader</artifactId><version>2.0.5.RELEASE</version></dependency>

代码运行如下

JarLauncher 中的main方法

会根据jar的运行目录重写一个类加载器 ClassLoader

通过反射调用@SpringBootApplication下的main方法

如果想要打断点可以通过JDWP来远程对服务器打断点调试,但是要求本地代码和项目代码相同

志宇-springBoot启动相关推荐

  1. Springboot启动原理解析

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 我们开发任何一个Spring Boot项目,都会用到如下的启动类 @SpringBootAppl ...

  2. 手把手带你剖析 Springboot 启动原理!

    作者:平凡希 cnblogs.com/xiaoxi/p/7999885.html 我们开发任何一个Spring Boot项目,都会用到如下的启动类 @SpringBootApplication pub ...

  3. springboot 启动的时候报错 Error creating bean with name 'solrClient'

    springboot 启动的时候报错: org.springframework.beans.factory.BeanCreationException: Error creating bean wit ...

  4. SpringBoot启动类的扫描注解的用法及冲突原则

    背景 SpringBoot 启动类上,配置扫描包路径有三种方式,最近看到一个应用上三种注解都用上了,代码如下: @SpringBootApplication(scanBasePackages ={&q ...

  5. springboot启动异常java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS

    springboot启动异常java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS 参考文章: (1)springboot启动异常j ...

  6. springboot启动总是启动不起来UnsatisfiedDependencyException异常

    springboot启动总是启动不起来UnsatisfiedDependencyException异常 参考文章: (1)springboot启动总是启动不起来UnsatisfiedDependenc ...

  7. spring-boot启动源码学习-1

    2019独角兽企业重金招聘Python工程师标准>>> spring-boot启动源码分析-启动初始化 主要对spring-boot的启动流程中的启动初始化进行学习,学习spring ...

  8. springboot启动原理分析

    目录 前言 起步依赖 自动配置 总结 前言 现如今我们使用java搭建工程的时候,使用过springboot的同学很清楚,有很多的默认配置springboot已经帮助我们配置好了,进一步的简化了我们的 ...

  9. springboot启动过程_不要搞笑哈,你用了5年的SpringBoot框架,竟然不了解它的启动过程?...

    SpringBoot的启动很简单,代码如下: @SpringBootApplicationpublic class MyApplication { public static void main(St ...

最新文章

  1. 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)
  2. Visual Studio 2017 15.7预览版发布
  3. PHP Warning: Xdebug MUST be loaded as a Zend extension
  4. JDK和CGLIB动态代理区别
  5. linux中umask的使用
  6. 微信小程序秀才成语接龙趣味答题小游戏带流量主无授权源码
  7. uva11054 - Wine trading in Gergovia(等价转换,贪心法)
  8. cc2530单片机是几位单片机_我的单片机学习之路(续1)
  9. 6个残酷的人生事实[转]
  10. python 解决for读取文件出现的换行符
  11. 现实世界的Windows Azure:采访Definition 6首席技术官Paul Hernacki
  12. 服务器安装esxi系统
  13. AES加密和解密详解
  14. C#文件和文件文件夹排序
  15. Nginx实现动静分离(Nginx图片服务器及404问题解决)
  16. android 微信自动添加好友 项目开源
  17. GitHub 上很火的 7 个项目--架构思想精华
  18. android animation
  19. 惠普gk100好不好_惠普GK100如何,惠普GK100评价看这里
  20. 【HCIE考试喜报】2022年11月11日考试通过

热门文章

  1. 上海证券交易所股票期权组合策略业务指引及其影响
  2. H5直播之四款好用的免费直播编码推流软件
  3. HDU 4741 Save Labman No.004(计算几何)
  4. 微信小程序_笔记_04_Request请求_提交审核与发布
  5. 【git】git操作命令和相关脚本
  6. win10电脑右键新建没有记事本的解决方法
  7. 数据结构C语言版字符串,数据结构c语言版
  8. 网络爬虫的作用和简单分类
  9. 蔚来第三代换电站投入试运营,4月向用户大规模开放
  10. Java Swing 实现loading进度条加载效果