详解springboot-修改内置tomcat版本 - Go语言中文社区

详解springboot-修改内置tomcat版本


SpringBoot中内置了tomcat,使得我们可以不使用外部的tomcat,来启动SpringBoot程序。

1、解析Spring Boot父级依赖

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>

这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可以去你的Maven仓库中查看。
比如在我的Maven仓库中,路径为:
F:mavenrepositoryorgspringframeworkbootspring-boot-dependencies2.2.2.RELEASEspring-boot-dependencies-2.2.2.RELEASE.pom

2、打开这个pom文件,搜索“tomcat.version” 会找到:

在这里插入图片描述

<tomcat.version>9.0.29</tomcat.version>

在这里插入图片描述
①可以直接在这里修改你想要的tomcat版本
②在你自己的项目的pom里面添加版本,就可以直接覆盖这里的版本了。如:

pom.xml 中tomcat版本配置代码

<properties>
	<tomcat.version>8.0.29</tomcat.version>
</properties>

添加这个之后,spingboot的默认启动的tomcat版本就可以达到你自己需要的了。到这里基本就完成了。
但是有时候启动会报错:

1 Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
2 at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java:37)
3 at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:169)
4 at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)
5 at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)
6 ... 13 common frames omitted
7

因为这个时候的tocmat缺少jar包,maven项目的话加上下面这个依赖就好了:

<dependency>
	<groupId>org.apache.tomcat</groupId>
	<artifactId>tomcat-juli</artifactId>
	<version>${tomcat.version}</version>
</dependency>
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40806970/article/details/104559830
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢