前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
1、解析Spring Boot父级依赖
1 2 3 4 5 6 | <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version> 1.5 . 6 .RELEASE</version> </parent> |
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看C:\Users\用户.m2\repository\org\springframework\boot\spring-boot-dependencies\1.5.1.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom
( PS:我的路径是在:C:\Users\用户名\.m2\repository\org\springframework\boot\spring-boot-dependencies\1.5.2.RELEASE下有对应pom文件 )
2、打开这个pom文件,搜索“tomcat.version” 会找到:<tomcat.version>8.5.16</tomcat.version>
①可以直接在这里修改你想要的tomcat版本
②在你自己的项目的pom里面添加版本,就可以直接覆盖这里的版本了。如:
Pom中tomcat版本配置代码
1 2 3 | <properties> <tomcat.version> 8.0 . 29 </tomcat.version> </properties> |
添加这个之后,spingboot的默认启动的tomcat版本就可以达到你自己需要的了。到这里基本就完成了。
但是有时候启动会报错:
Tomcat启动报错代码
1 2 3 4 5 6 | Caused by: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.apache.catalina.util.LifecycleBase.<clinit>(LifecycleBase.java: 37 ) at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java: 169 ) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java: 164 ) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java: 134 ) ... 13 common frames omitted |
因为这个时候的tocmat缺少jar包,maven项目的话加上下面这个依赖就好了:
1 2 3 4 5 | <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-juli</artifactId> <version>${tomcat.version}</version> </dependency> |
以上就是springboot-修改内置tomcat版本的实例,这样就可以了。