声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅。

1、概念:SpringBoot 整合 Tomcat

2、背景

  SpringBoot 本身支持有两类的 WEB 容器:默认的 Tomcat、Jetty,那么现在如果从实际的角度来看,在 SpringBoot 运行的时候 即使没有 WEB 容器,那么也可以采用自定义的方式实现 WEB 容器的启动。如果说现在只是做为一个简单的服务发布,那么的确 用不上 Tomcat,可是 Tomcat 也有自身的优势,毕竟它是一个具备有完全功能的 WEB 容器,而且在这个容器里面还可以进行各种 服务的配置,所以一些开发者认为,不应该只是纯粹的去使用微服务的方式来启动 WEB 程序,我们的程序还应该发布到 Tomcat 之中。

2.1、配置 Tomcat 运行

1、 如果一个程序项目要想发布到 Tomcat 上运行,那么该项目一定要设置为 war 文件,于是首先第一步就需要修改项目的类型为 war,修改 pom.xml 配置文件:

· 首先将打包的类型设置为 war 文件:

<packaging>war</packaging>

· 项目最终需要进行打包操作,所以还需要设置一个 maven 的 war 文件的打包插件:

         <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><warName>study</warName></configuration></plugin></plugins>

· 由于现在的项目打包为 war 文件之后需要通过 tomcat 执行,所以注销掉 jetty 的相关配置。

<!--         <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency> -->

2、 由于现在项目模块追加了新的 maven 插件,所以为了让插件起作用,则应该进行 maven 的更新处理;

3、 更新完成 maven 项目之后会提示用户你现在缺少 webapps/WEB-INF/web.xml 配置文件,所以可以通过 Tomcat 安装目录拷贝此 文件到项目之中;

4、 如果现在你的项目要想以 Tomcat 的形式运行,那么必须对 SpringBoot 的启动类做有一个简单的配置处理;

package cn.study.microboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication // 启动SpringBoot程序,而后自带子包扫描
@ComponentScan("cn.study.microboot")
public class StartSpringBootMain extends SpringBootServletInitializer { // 必须继承指定的父类
    @Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(StartSpringBootMain.class) ;}public static void main(String[] args) throws Exception {SpringApplication.run(StartSpringBootMain.class, args);}
}

5、 进行项目的maven打包处理:

6、 将生成的 study.war 文件拷贝到 tomcat/webapps 目录之中进行项目的热部署,随后启动 Tomcat 容器,来执行当前的程序文件, 访问路径:http://localhost/study/addPre;

转载于:https://www.cnblogs.com/leeSmall/p/8711382.html

SpringBoot系列六:SpringBoot整合Tomcat相关推荐

  1. springboot系列六、springboot配置错误页面及全局异常

    springboot系列六.springboot配置错误页面及全局异常 参考文章: (1)springboot系列六.springboot配置错误页面及全局异常 (2)https://www.cnbl ...

  2. SpringBoot系列3-----Docker SpringBoot与数据访问 启动原理 自定义starters

    五.Docker 1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术 Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜 ...

  3. 【Springboot系列】Springboot接管所有Controller,magic-api源码阅读

    系列文章地址:Spring Boot学习大纲,可以留言自己想了解的技术点 最近在项目中使用了一个第三方的包 magic-api,节省了很多的时间,整体来说就是只用写sql就好了,不用写service, ...

  4. Zabbix5系列-监控SpringBoot内置的Tomcat和JVM(二十一)

    Zabbix5系列-监控SpringBoot内置的Tomcat和JVM 一.参考 二.环境 三.开启JMX 四.配置模板 五.测试 六.修改后的模板参考 6.1 Apache Tomcat JMX模板 ...

  5. springboot接收文件_SpringBoot2.x系列教程61--SpringBoot整合MQ之ActiveMQ实现消息传递

    SpringBoot2.x系列教程61--SpringBoot整合消息队列之ActiveMQ代码实现消息传递 作者:一一哥 我在上一章节中,给大家介绍了ActiveMQ,本节中我会介绍Spring B ...

  6. SpringBoot 整合 Spring Security 实现安全认证【SpringBoot系列9】

    SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见. 程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCl ...

  7. 《SpringBoot系列十六》条件装配时ConfigurationCondition和Condition有什么区别?什么时候用ConfigurationCondition?

    一.前言 针对条件装配我们讨论了如下内容: <SpringBoot系列十一>:精讲如何使用@Conditional系列注解做条件装配 <SpringBoot系列十二>:如何自定 ...

  8. 补习系列(14)-springboot redis 整合-数据读写

    目录 一.简介 二.SpringBoot Redis 读写 A. 引入 spring-data-redis B. 序列化 C. 读写样例 三.方法级缓存 四.连接池 小结 一.简介 在 补习系列(A3 ...

  9. Java工程师之SpringBoot系列教程前言目录

    前言 与时俱进是每一个程序员都应该有的意识,当一个Java程序员在当代步遍布的时候,你就行该想到我能多学点什么.可观的是后端的框架是稳定的,它们能够维持更久的时间在应用中,而不用担心技术的更新换代.但 ...

最新文章

  1. TDD, what, why, how
  2. php数字导出excel表格中_php怎么把数据表中的数据导出到excel表中
  3. 为什么重写equals()和hashcode()
  4. java中如何数组是如何赋值的?
  5. 【人工智能初级系列(一)】科学计算库 Numpy
  6. 手写tomcat socket closed_【消费电子】:重在阅读,新增手写 BOOX Nova Pro 体验评测...
  7. 改进初学者的PID-手自动切换
  8. 前端笔记-css实现web自适应(当像素小于xx时隐藏此div)
  9. Oracle数据库被锁
  10. jsp ---- filter
  11. 计算机DNS服务器错误,找不到服务器或DNS错误怎么办?Win7找不到服务器或dns错误解决方法...
  12. 利用阿里云短信找回密码 SpringBoot集成Mybatis
  13. vivo手机的微信消息不提示问题解决
  14. java pdf 签名_java – PDFBox 1.8.10:填充和签名PDF生成无效签名
  15. 【Java 8 新特性】Java 8 时间接口示例:MonthDay、Month、OffsetDateTime 和 OffsetTime
  16. 数字图像处理第八章----图像压缩
  17. jenkins,maven--创建自由风格的软件项目任务
  18. java 行列式计算_n阶行列式的全排列求解(Java)
  19. 修改服务器3389 端口号,修改服务器3389端口为其它端口
  20. 什么是php 的精华,PHP之精髓

热门文章

  1. VSCode配置PyQt5和designer
  2. 80后的十三种最深寂寞
  3. vb以类名或窗口标题查找句柄并关闭
  4. 儿童心理健康的十项注意
  5. 抄底公式---预测黑马
  6. 枪口对准Google无人车
  7. “Google只认钱!机器学习20年没进步”,CMU学者炮轰AI第一大厂
  8. 史上最大规模机器人“面相”调查:157张脸背后的人类感受
  9. 牛客OI周赛6-提高组 B 践踏
  10. Centos 中如何快速定制二进制的内核 RPM 包