内嵌tomcat启动速度慢
项目上最近要把内置的jetty换成tomcat, 来更好的支持servlet 3.0
本来以为换个容器, 几十行代码就好了. 实际上换了tomcat后, 一开始启动tomcat, 非常的慢.
jetty只要几秒就可以启动的web工程, 内嵌tomcat花了接近15s, 直接启动tomcat, 接近10s.
后来试了下, 删除了项目里的web.xml, 发现直接启动tomcat只要0.6s, 而内嵌tomcat居然要5s.
这就很奇怪了, 因为web工程里既没有WEB-INF/lib, 也没有web.xml, 这多出来的5s来源何处.
对比了直接启动和内嵌启动的日志, 发现有一些日志不一样.
org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
信息: No global web.xml found
把源码倒腾下来, 搜索No global web.xml found, debug进去看,
发现在ContextConfig中有个webConfig方法, 里面有个扫描jar里class,
匹配注解来加载fragments. 他会扫描WEB-INF/lib以及classpath, jdk路径下的jar来匹配需要的类.
就是这个导致内嵌的tomcat启动速度低于直接启动, 我们业务用不到, 注释掉后, 速度跟直接启动差不多了.
转载于:https://www.cnblogs.com/xdecode/p/8432997.html
内嵌tomcat启动速度慢相关推荐
- IDEA把Springboot打成可执行jar包,内嵌tomcat 这个可以用
IDEA把Springboot打成可执行jar包,内嵌tomcat 2018年11月23日 18:36:30 ta山之石可以攻玉 阅读数 3061 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- 实现内嵌tomcat
内嵌tomcat的实现: 首先根据外部tomcat的配置和启动过程我们可以得到以下条件: web.xml: 1.配置Servlet 2.配置请求拦截 3.配置请求转发 ... ... tomcat一些 ...
- Springboot内嵌tomcat
Springboot内嵌tomcat 前言 一.依赖引入starter-web 二.源码截图 tomcat 如何内嵌 三.springboot 如何启动tomcat 前言 一.依赖引入starter- ...
- 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 segmentfault.com/a/1190000038760707 推荐:h ...
- spring boot内嵌tomcat优雅的开启apr模式
文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...
- 精尽Spring Boot源码分析 - 内嵌Tomcat容器的实现
概述 我们知道 Spring Boot 能够创建独立的 Spring 应用,内部嵌入 Tomcat 容器(Jetty.Undertow),让我们的 jar 无需放入 Servlet 容器就能直接运行. ...
- 指定SpringBoot内嵌Tomcat的版本,修复(CVE-2021-42340)漏洞
1.Tomcat漏洞 近日,Apache Tomcat 发布安全更新,更新了一处拒绝服务漏洞(CVE-2021-42340).攻击者可以通过该漏洞进行拒绝服务攻击.建议广大用户及时升级至最新版本. 1 ...
- SpringBoot内嵌Tomcat原理
1.SpringBoot对SpringMVC的支持 对于一个 SpringBoot web 工程来说,一个主要的依赖标志就是有 spring-boot-starter-web 这个 starter , ...
- springboot内嵌tomcat调优
在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性: server.tomcat.a ...
最新文章
- Robotics Research Laboratory
- Securing Session State
- python写界面进度条程序_Python中如何写控制台进度条的整理
- SAP顾问,市场的双重需求
- 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享
- 基于html人事管理报告,基于C++builder的课程设计报告 (人事管理系统)
- javascript 图表_我如何使用JavaScript数据透视表和图表库分析开发人员趋势
- 程序设计与算法----递归之放苹果问题
- Request库入门
- java中list,set,map集合的区别,及面试要点
- linux下verilog功能验证,Verilog 条件语句介绍
- 分布式常见面试题总结(2021)
- 博客整理002-KICAD生成gerber板厂打不开的原因
- 浅析软文标题写作的三个问题
- VS2017安装WTL,解决创建WTL项目一直回弹问题
- 电商搜索里都有啥?详解闲鱼搜索系统(长文)
- 史上首例!阿里程序员写的代码,被国家博物馆收藏了!
- 修改SrollView嵌套下的整个layout背景色
- (转载)简述马尔可夫链
- npm插件开发-Vue插件
热门文章
- 从头写一个Cucumber测试(二) Cucumber Test
- 深度 | 伯克利教授Stuart Russell:人工智能基础概念与34个误区
- c++ 二维数组传递
- RMI原理一记远程调用
- linux下oracle中文乱码问题的解决
- 小括号教学设计导入_人教版一年级数学下教案 《小括号》教案
- pcb结构链表_简单说说链表和一个应用实例
- c#结合emgucv进行人脸检测_Python实时人脸识别/替换
- 企业号开发php,微信企业号-开发笔记-1
- angular将html导出为pdf,如何使用Angular进行转换:将HTML转换为PDF