springboot源码-内置tomcat创建过程

前言:1.在Springboot-web应用启动过程中,执行子容器的OnRefresh步骤时,创建并初始化一个内置的tomcat8容器2.然后在执行子容器的finishRefresh步骤时,启动tomcat容器tomcat-8相关:1.Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1、JSP 2.3、Java统一表达式语言EL 3.0等2...
摘要由CSDN通过智能技术生成

前言
1.在Springboot-web应用启动过程中,执行子容器的OnRefresh步骤时,创建并初始化一个内置的tomcat8容器
2.然后在执行子容器的finishRefresh步骤时,启动tomcat容器

tomcat-8相关:

1.Apache Tomcat 8支持Java EE 7规范,包括Java Servlet 3.1、JSP 2.3、Java统一表达式语言EL 3.0等
2.Servlet 3.1最大的改进是实现了非阻塞式的I/O通信。这使得性能得到巨大的改进,数据可以通过ReadListener和WriteListener接口以异步的方式进行管理。
tomcat运行模式:
1.bio:阻塞式IO操作,使用的是传统的java i/o处理方式
2.nio:基于java中非阻塞IO操作的API实现
3.apr:从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选方式
4.目前tomcat-8默认情况下全部是运行在nio模式下

apr配置相关资料:

1.Tomcat7配置APR
2.Tomcat8配置APR

tomcat容器的核心类为:TomcatEmbeddedServletContainer

tomcat容器创建流程:
public EmbeddedServletContainer getEmbeddedServletContainer(
			ServletContextInitializer... initializers) {
	//创建一个tomcat实例
	Tomcat tomcat = new Tomcat();
	File baseDir = (this.baseDirectory != null ? this.baseDirectory
			: createTempDir("tomcat"));
	//设置一个目录存放临时文件
	tomcat.setBaseDir(baseDir.getAbsolutePath());
	//步骤1.创建一个Connector连接器,默认使用协议"org.apache.coyote.http11.Http11NioProtocol"
	Connector connector = new Connector(this.protocol);
	//添加Connector到tomcat配置serveic中
	tomcat.getService().addConnector(connector);
	//步骤2.定制Connecter
	customizeConnector(connector);
	tomcat.setConnector(connector);
	tomcat.getHost().setAutoDeploy(false);
	//步骤3.配置tomcat引擎
	configureEngine(tomcat.getEngine());
	for (Connector additionalConnector : this.additionalTomcatConnectors) {
		tomcat.getService().addConnector(additionalConnector);
	}
	//步骤4.初始化一个TomcatEmbeddedContext上下文
	prepareContext
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值