声明:本文来源于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 { // 必须继承指定的父类
@Override
protected 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;

SpringBoot系列六:SpringBoot整合Tomcat的更多相关文章

  1. Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)

    前言 由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也 ...

  2. SpringBoot(十六)_springboot整合JasperReport6.6.0

    现在项目上要求实现套打,结果公司里有个人建议用JaperReport进行实现,就进入这个东西的坑中.好歹经过挣扎现在已经脱离此坑中.现在我也是仅能实现读取数据库数据转成pdf进行展示,包括中文的展示. ...

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

    一.spring1.x中处理方式 @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new ...

  4. 十一、springboot(六)整合Thymeleaf

    1.添加jar包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...

  5. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  6. SpringBoot学习(六)-->SpringBoot的自动配置的原理

    Spring Boot的自动配置的原理 Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入 ...

  7. SPRING-BOOT系列之SpringBoot的诞生及其和微服务的关系

    转载自 : https://www.cnblogs.com/ityouknow/p/9034377.html 微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法 ...

  8. SpringBoot系列-整合Mybatis(注解方式)

    目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...

  9. SpringBoot系列(五)Mybatis整合完整详细版

    SpringBoot系列(五)Mybatis整合 目录 mybatis简介 项目创建 entity dao service serviceImpl mapper controller 1. Mybat ...

随机推荐

  1. lua -- 在面板中添加多个部件

    function UIBagController:initItemView( ) -- 获取面板 self.panelCenter = tolua.cast(UIHelper:seekWidgetBy ...

  2. ny106 背包问题

    背包问题                                                时间限制:3000 ms  |  内存限制:65535 KB                   ...

  3. kali下添加PATH环境变量

    添加PATH环境变量,第1种方法: [root@lx_web_s1 ~]# export PATH=/usr/local/webserver/mysql/bin:$PATH 再次查看: [root@l ...

  4. canvas的图片绘制案例

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  5. pip3 install jupyter出现错误

    问题描述 出现如下错误: Command "/Users/wang/.pyenv/versions/3.3.1/bin/python3.3 -u -c "import setupt ...

  6. javascript检测浏览器的缩放状态实现代码 是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放)

    这里所说的缩放不是指浏览器大小的缩放,而是指浏览器网页内容的百分比缩放(按Ctrl和+号键或者-号键的缩放).检测这种缩放有很种方法,QQ空间都通过flash来检测浏览器是否处于缩放.这里提供java ...

  7. LeetCode: Triangle 解题报告

    Triangle Given a triangle, find the minimum path sum from top to bottom. Each step you may move to a ...

  8. rapidjson使用总结

    Reference:  https://blog.csdn.net/elloop/article/details/49908689 rapidjson简介 rapidjson是腾讯的开源json解析框 ...

  9. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  10. Mongodb 的常用方法,在可视化工具执行

    查询: db.getCollection('message').find({"userId":"31257"}) 查询总数: db.getCollection( ...