Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >太简单,springboo 使用自定义的 Tomcat

太简单,springboo 使用自定义的 Tomcat

作者头像
程序员爱酸奶
发布于 2020-07-23 12:11:18
发布于 2020-07-23 12:11:18
1.6K00
代码可运行
举报
文章被收录于专栏:程序员爱酸奶程序员爱酸奶
运行总次数:0
代码可运行

喜欢就关注我们吧!

前言

事情的缘由是tomcat d的漏洞引起的,需要升级Tomcat。

在这里插入图片描述

然后项目是springboot, 然后使用自带的tomcat.我使用的是springboot2.1.6.我看了一下,2.1.6版本自动依赖的Tomcat版本是9.0.21。刚好在这个漏洞范围之内。卧槽,第一反应就是要升级,最开始想到了两个解决方案。

一、升级springboot版本,我查了一下,最新的springboot 2.2.3 依赖的Tomcat版本是9.0.30 ,那岂不是springboot 版本要升级到最新,一想不对劲啊,升到最新版本会不会引起其他什么问题,然后我升级到2.2.3打包没问题,启动就报错了,发现项目依赖的公司框架不支持最新的版本,这样想,如果要修复漏洞,就要升级框架,成本还是有点高的,所以想了第二个方案。

二、屏蔽自带了Tomcat,部署到外置Tomcat 上运行,但是这样需要打成war ,并且项目中的一堆配置文件都是放在配置中心的 ,怎么都去加载也是问题。并且改动量很大也。

后来在第二种的基础上,改进了一下。既然可以屏蔽到自带的tomcat ,那我们再进一步,引入没有漏洞的tomcat 包是不是就可以了。

解决

基于上面的思考,我找到了pom.xml 文件,parent中点击进去,找到spring-boot-dependencies 点进去,再找到tomcat 依赖的版本,可以看到原来是9.0.21.我们手动改成9.0.30 。然后我们pom.xml maven-Reimport。最后重启项目。

启动发现,引用的Tomcat已经是我们最新的9.0.30啦。

那怎么升级呢?如果lib 文件和项目没有分开,直接全量替换就可以了。如果是依赖包和运行包分开,如果仅仅替换下面这四个jar 包启动是会报错的。所以建议还是替换整个lib 文件夹

反思

其实也可以在pom.xml 文件中做如下修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>    <!-- 去掉默认配置 -->
                <!-- 移除嵌入式tomcat插件 -->
                <!--<exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>-->
            </exclusions>
</dependency>
 <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>9.0.30</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-el</artifactId>
        <version>9.0.30</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-websocket</artifactId>
        <version>9.0.30</version>
      </dependency>

可以达到一样的效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员爱酸奶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS 中你需要知道 auto 的一切!
在CSS中,我们有auto值,它可以用于像margin,position,height,width等属性。在本文中,会先解释auto的工作方式以及如何最大程度地利用auto的技术细节,当然,会配合一些用例和示例。
前端小智@大迁世界
2020/05/12
5.5K0
CSS 中你需要知道 auto 的一切!
Web 技术:CSS最小和最大(宽度/高度)知识点及优缺点
通常,我们希望限制元素相对于其父元素的宽度,同时使其具有动态性。因此,有一个基础宽度或高度的能力,使其扩展的基础上,可用的空间。比如说,我们有一个按钮,它的宽度应该是最小的,不应该低于它的宽度。这就是最大和最小属性变得方便的地方。
前端小智@大迁世界
2020/07/17
6.2K0
Web 技术:CSS最小和最大(宽度/高度)知识点及优缺点
几种常见的 CSS 布局
其中实现三栏布局有多种方式,本文着重介绍圣杯布局和双飞翼布局。另外几种可以猛戳实现三栏布局的几种方法
夜尽天明
2019/08/21
9250
几种常见的 CSS 布局
最全的常见css布局
对于第一种,先通过对 header,content,footer 统一设置 width:1000px;或者 max-width:1000px(这两者的区别是当屏幕小于 1000px 时,前者会出现滚动条,后者则不会,显示出实际宽度);然后设置 margin:auto 实现居中即可得到。
grain先森
2019/03/29
1.7K0
最全的常见css布局
译|CSS中的间距,前端开发中各种设置间距的优点缺点及实例
如果两个或多个元素很接近,那么用户就会认为它们以某种方式属于彼此。当对多个设计元素进行分组时,用户可以根据它们之间的空间大小来决定它们之间的关系。没有间距,用户将很难浏览页面并知道哪些内容相关而哪些内容无关。
张张
2020/05/12
12.1K0
译|CSS中的间距,前端开发中各种设置间距的优点缺点及实例
CSS 基础系列:常见布局方式
给 header、content、footer 设置相同的 width 或者 max-width(显示的宽度都一样,但是前者内容过长会溢出,后者会换行),再设置 margin 达到水平居中。
Chor
2019/11/07
1.8K0
Joe 主题美化记录
刚放入上面代码还是不够的,我的目标是用这个代替原先的页脚信息,因此需要把原来页脚的部分代码加入到<div class="site-p"></div>
公爵
2022/09/28
8710
Joe 主题美化记录
CSS 7:网页布局(传统布局,flex布局,布局套路)
width: 1000px; //或 max-width: 1000px; margin-left: auto; margin-right: auto; 演示地址范例
代码之风
2019/03/14
4K0
CSS 7:网页布局(传统布局,flex布局,布局套路)
【前端】:margin
目录 1. margin 特性总结 2. 几道笔试题 1. margin 特性总结 1.1. 横向格式化 横向格式化属性有 7 个,分别为 margin-left、border-left、padding-left、width、padding-right、border-right、margin-right。 这 7 个属性的值加在一起要等于元素容纳块的宽度。 这 7 个属性中,只有 margin-left、width、margin-right 能设置为 auto。 [3个auto] 如果 margin-le
WEBJ2EE
2020/01/17
1.2K0
【前端】:margin
【Html.js——页面布局】个人博客(蓝桥杯真题-1766)【合集】
通过以上步骤,HTML 和 CSS 代码协同工作,实现了一个具有导航栏、首页 banner、文章列表和右侧栏的个人博客页面布局。
Rossy Yan
2025/01/24
380
【Html.js——页面布局】个人博客(蓝桥杯真题-1766)【合集】
剖析一些经典的CSS布局问题,为前端开发+面试保驾护航
这样做的优点就是在图文混排的时候可以很好的使文字环绕在图片周围。另外当元素浮动了起来之后,它有着块级元素的一些性质例如可以设置宽高等,但它与inline-block还是有一些区别的,第一个就是关于横向排序的时候,float可以设置方向而inline-block方向是固定的;还有一个就是inline-block在使用时有时会有空白间隙的问题
桃翁
2019/11/09
1.2K0
剖析一些经典的CSS布局问题,为前端开发+面试保驾护航
Html和CSS布局技巧(转)
水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是parent元素)
山河木马
2019/03/05
4.8K0
HTML5+CSS3响应式垂直时间轴,高端,大气
HTML5+CSS3响应式垂直时间轴,使用了HTML5标签<section>,时间轴中所有的内容包括标题、简介、时间和图像都放在.cd-timeline-block的DIV中,多个DIV形成一个序列,并把这些DIV放在<section>中。
用户5997198
2019/08/09
1.9K0
HTML5+CSS3响应式垂直时间轴,高端,大气
css布局使用
目录 常用居中 垂直居中 水平居中 垂直水平居中 单列布局 双列&三列布局 ---- 常用居中 垂直居中 单行文本垂直居中 <div class="parent"> <div class="child">child</div> </div> .parent { line-height: 200px; } 图片垂直居中 <div class="parent"> ![](image.png) </div> .parent { line-height: 200px; } .par
听城
2018/04/27
1.9K0
一文搞定各类前端常见布局方式
缺点:若子元素脱离文档流,会导致 margin 失效,如 float、absolute、fixed
CS逍遥剑仙
2022/08/13
2K0
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(2)
描述: 由于篇幅过长的原因,作者将CSS布局文章分为两个小节,前面相信大家已经跟着【WeiyiGeek】作者一起学习了CSS Flexbox以及网格布局的基础知识了,现在我们在此基础上继续深入学习CSS 多列布局、浮动布局以及了解表格布局及其他传统布局,它是学习CSS之路上一个重点,是在进行前端开发时常常使用到的,所以说我们需要认真学习,若有不懂的地方可以在文章末尾,以及作者交流群【在公众号回复微信交流群】进行留言交流。
全栈工程师修炼指南
2023/10/31
2870
全栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(2)
【Web前端】项目实训:CSS基本布局理解
对CSS学习已经接近尾声,下面你可以对以下两道“小卡拉米”测试进行测试下CSS理解程度。
一条晒干的咸鱼
2024/11/19
1340
【Web前端】项目实训:CSS基本布局理解
分享 10 个常见的 CSS 页面布局代码片段
大家好,本篇文章将分享我们业务中很常见的10个页面布局代码片段,这10 种页面布局很常见,实现方式也有很多种,本篇文章将用最简单的新方式进行实现,希望对大家有所启发。
前端达人
2022/03/25
3.5K0
分享 10 个常见的 CSS 页面布局代码片段
使用这些不太常用的 CSS 属性,让我在前端布局效率上,又提高了一个层次!
有很多CSS属性,有些人不了解,或者他们了解它们,但是忘记在需要时使用它们。其实,有时候我们用 JavaScript 来实某些交互,CSS 一个属性就能搞定了,这可以大大节约我们编码的时间。
前端小智@大迁世界
2020/09/07
2.1K0
WordPress网站B2主题会员展示模块
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
小狐狸说事
2022/11/17
1K0
WordPress网站B2主题会员展示模块
推荐阅读
相关推荐
CSS 中你需要知道 auto 的一切!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验