【JAVA面试】SpringBoot如何启动的Tomcat

这篇具有很好参考价值的文章主要介绍了【JAVA面试】SpringBoot如何启动的Tomcat。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章先作为初版,等后续时间充足后,补充更深的内容


SpringBoot如何启动的Tomcat

一、流程

在Spring Boot应用程序中,内嵌的Tomcat服务器是通过Spring Boot Starter Web模块提供的功能来启动的。下面是Spring Boot启动Tomcat的大致过程:

引入Spring Boot Starter Web依赖:在项目的pom.xml文件中添加Spring Boot Starter Web依赖,它会自动包含Tomcat作为内嵌服务器。

创建Spring Boot应用类:创建一个Java类,并使用@SpringBootApplication注解标记该类。该注解包含了多个注解的组合,其中包括@EnableAutoConfiguration、@ComponentScan和@Configuration。

启动应用程序:在Spring Boot应用类中,使用SpringApplication.run()方法来启动应用程序。
1.首先,SpringBoot在启动时会先创建一个Spring容器
2.在创建Spring容器过程中,会利用**@CondtionalOnClass技术来判断当前classpath中是否存在Tomcat依赖**,如果存在则会生成一个启动Tomcat的Bean
3. Spring容器创建完之后,就会获取启动Tomcat的Bean,并创建Tomcat对象,并绑定端口等,然后启动Tomcat

Tomcat配置加载:Spring Boot会自动加载Tomcat的配置。如果在application.properties或application.yml文件中定义了Tomcat相关的配置属性(如端口号、上下文路径等),则会被自动加载并应用于内嵌的Tomcat服务器。

Servlet容器初始化:在Tomcat启动过程中,Servlet容器会被初始化。它会读取应用程序的类路径下的Servlet、Filter和Listener等相关组件,并进行初始化和注册

请求处理:一旦Tomcat成功启动,它会监听指定的端口号,并等待来自客户端的HTTP请求。当收到请求时,Tomcat会根据配置的路由规则和请求的URL将请求转发给相应的Servlet进行处理

二、总结

Spring Boot通过引入Spring Boot Starter Web依赖和创建Spring Boot应用类,在应用启动过程中加载Tomcat并初始化Servlet容器,以提供对HTTP请求的处理能力。这种方式使得开发者可以方便地在Spring Boot应用程序中嵌入和配置Tomcat服务器,从而简化了Web应用程序的开发和部署过程。文章来源地址https://www.toymoban.com/news/detail-439734.html


到了这里,关于【JAVA面试】SpringBoot如何启动的Tomcat的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot内嵌Tomcat启动流程

    Spring MVC 让开发者不用了解 Servlet 细节,专注于 Controller 编写 API 接口。Spring Boot 更是采用约定大于配置的设计思想,通过内嵌 Tomcat 的方式让开发者可以快速构建并部署一个 Web 应用。怎么做到的呢? 早期的开发,一般是基于 Spring 和 Spring MVC 构建我们的应用,然后把项目打

    2024年02月02日
    浏览(42)
  • SpringBoot源码学习4——SpringBoot内嵌Tomcat启动流程源码分析

    系列文章目录和关于我 我在初学spring的时候,很懵逼,因为整个项目中不存在main方法,让我有点摸不着头脑。那时候我知道有个东西叫tomcat是它监听了端口,解析了协议调到了我的servlet。 在我初学SpringBoot的时候,很懵逼,有main方法了,但是tomcat在哪里呢,又是如何启动起

    2024年02月04日
    浏览(47)
  • SpringBoot配置外部Tomcat项目启动流程源码分析

    SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat),该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂。故而我们可以使用习惯的外置Tomcat方式并将项目打War包。 ① 同样使用Spring Initializer方式创建项目 ② 打包方式选择\\\"war\\\" ③ 选择添加的模块 ④ 创建的

    2024年02月04日
    浏览(42)
  • SpringBoot复习:(2)Tomcat容器是怎么启动的?

    SpringApplication的run方法包含如下代码: 其中调用的refreshContext代码如下: 其中调用的refresh方法片段如下: 其中调用的refresh方法代码如下: 其中调用的super.refresh方法代码如下: 其中调用了onRefresh方法: 进入 ServletWebServerApplicationContext的onRefresh方法: createWebServer代码如下:

    2024年02月15日
    浏览(47)
  • 启动springboot,出现Unable to start embedded Tomcat

    查看报错信息的最后一行,发现在执行 TldScanner 这个类下面的方法时,出现 omitted ,一般这种情况,大概率是发生了jar冲突了。 如下图所示,查看 TldScanner 这个类,出现两处地方都包含,找到报错信息中 jetty-runner.jar 所在的依赖。我的工程是在hive-cli这个依赖里面。 使用De

    2024年02月13日
    浏览(44)
  • SpringBoot项目(Tomcat启动https端口)——springboot配置Tomcat两个端口,https和http的方式 & jar的打包和运行

    1.springboot配置Tomcat两个端口,https和http的方式; 2.在https协议下,发送axios请求没反应,暂时用form表单解决; 3.运行jar包template might not exist报错及解决; 代码位置: https://gitcode.net/Pireley/springboot-tomcat-http-https 严格来说https不是一个独立协议,只是在http协议基础上增加了SSL/T

    2024年02月03日
    浏览(53)
  • SpringBoot 如何使用 Redis 作为缓存?

    在今天的互联网应用中,缓存是一个非常重要的概念。缓存可以减轻数据库的负担,提高系统的性能。Redis 是一个非常流行的内存数据库,它可以用作缓存,提供快速的读写速度和高可用性。在本文中,我们将介绍如何在 SpringBoot 中使用 Redis 作为缓存。 Redis 是一个高性能的

    2024年02月11日
    浏览(36)
  • SpringBoot 如何使用 Ehcache 作为缓存

    在现代分布式应用程序中,跟踪请求和了解应用程序的性能是至关重要的。Spring Boot Sleuth是一个分布式跟踪解决方案,它可以帮助您在分布式系统中跟踪请求并分析性能问题。本文将介绍如何在Spring Boot应用程序中使用Sleuth进行分布式跟踪。 Spring Boot Sleuth是Spring Cloud的一部分

    2024年02月07日
    浏览(33)
  • SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理

    Springboot项目 使用IntelliJ IDEA 将maven项目打war包,pom.xml文件中引入了依赖 并通过maven的package打包完后,放入tomcat的web-apps文件下 同时修改了打开conf文件夹下的server.xml文件,启动tomcat时出现了以下问题 SpringApplicationBuilder用于构建 Spring 应用,是SpringApplication和ApplicationContext实例

    2024年02月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包