其本质原因就是springBoot工程内嵌了一个tomcat,jar包方式以main方法作为入口执行代码的时候,底层启动了一个tomcat。 内置tomcat依赖 如果我们用springBoot开发web工程,通常都会导入如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ...
这里便会拿到TomcatStarter,TomcatStarter使用ServletContextInitializer数组记录了ServletWebServerApplicationContext#selfInitialize方法,从而实现ServletWebServerApplicationContext#selfInitialize的回调 SpringBoot之所以这么做是因为ServletContainerInitializer是Servlet规范接口,而ServletContextInitializer是SpringBoot定义的接口,利用Tomcat...
tomcat.getService().addConnector(connector); customizeConnector(connector); /** 2、给创建好的tomcat设置连接器connector **/ tomcat.setConnector(connector); /** 3.设置不自动部署 **/ tomcat.getHost().setAutoDeploy(false); /** 4.配置Tomcat容器引擎 **/ configureEngine(tomcat.getEngine()); for ...
默认是tomcat,也可以启用undertow。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </depen...
这里将spring中的类信息传入到了Tomcat中很关键,这些参数是一系列实现了初始化接口的类,调用后这里实现了SpringBoot中写的Servlet三大组件(Servlet、Filter、Listener)传入到Tomcat中 prepareContext()--->configureContext() 这里的Context是org.apache.catalina下的,是TomcatStarter是javax.servlet.ServletContainerInitializer...
SpringBoot中的Tomcat是如何启动的? <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 添加如上 Web 的依赖,Spring Boot 就帮我们内置了 Servlet 容器,默认使用的是 Tomcat,同样也支持修改,比如可以使用 jetty、Undertow 等。
1、Tomcat定义位置 2、Tomcat运行原理 3、更换内嵌Tomcat 九、小结 一、前言 前面已经讲解了快速上手SpringBoot入门程序制作的四种方式,相信各位小伙伴们已经可以熟练的使用这些方式来创建一个简单的web程序了,但是仅仅知道这些还是不够的。接下来,带大家一起了解parent、starter、引导类、以及内嵌Tomcat相关的知识!
1、Tomcat定义位置 2、Tomcat运行原理 3、更换内嵌Tomcat 九、小结 一、前言 前面已经讲解了快速上手SpringBoot入门程序制作的四种方式,相信各位小伙伴们已经可以熟练的使用这些方式来创建一个简单的web程序了,但是仅仅知道这些还是不够的。接下来,带大家一起了解parent、starter、引导类、以及内嵌Tomcat相关的知识!
所有的Starter其实都是要通过代码配置被上下文发现的,可以在spring-boot-autoconfigure-xxx.jar源码包中查看,例如下图所示,我们可以看到Spring Boot自带的Starter实现。 对于Spring Boot 内置 Web 容器来说,只要通过@ConditionalOnClass 发现了 Tomcat 这个类(配置了 spring-bootstarter-web的Maven依赖),Spring Boot就会自...
如用于构建Web请求响应流程的spring-web和spring-webmvc组件,用于JSON序列化和反序列化的jackson-databind组件及启动内置Tomcat服务器的spring-boot-starter-tomcat组件。 • org.springframework.boot:spring-boot-starter • org.springframework.boot:spring-boot-starter-tomcat...