声明:本文来源于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. FFmpeg(6)-通过av_find_best_stream()来获取音视流的索引

    也可以通过av_find_best_stream()函数来获取流的索引: 例: audioStream = av_find_best_stream(ic, AVMEDIA_TYPE_AUDIO, -, ...

  2. 如何优雅的退出/关闭/重启gunicorn进程

    在工作中,会发现gunicorn启动的web服务,无论怎么使用kill -9 进程号都是无法杀死gunicorn,经过我一番百度和谷歌,发现想要删除gunicorn进程其实很简单. 1. 寻找mast ...

  3. js实现手机摇一摇

    //手机摇一摇 ---------------------------------------------------------- init();var SHAKE_THRESHOLD = 3000 ...

  4. iOS如何把一个CGPoint存入数组里

    CGPoint  itemSprite1position = ccp(100,200): NSMutableArray * array  = [[NSMutableArray alloc] initW ...

  5. Android TabHost的使用 顶部选项卡

    用TabHost 来实现顶部选项卡,上代码:activity_main.xml <?xml version="1.0" encoding="utf-8"? ...

  6. Qwe中的数值结算

    可以利用t-esc标签进行计算,如: 需要注意的是t-esc标签的计算值并不会显示货币符号,如果需要使用货币符号,仍然需要使用t-field标签进行计算后显示.

  7. git——从远程库克隆

    从远程库克隆 阅读: 248434 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库. 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆. 首先,登陆GitHub,创建 ...

  8. win10里如何在中文输入法里添加美国键盘

    在控制面板打开“时钟.语言和区域”设置界面,选中“语言”设置   “语言”设置里点击“添加语言”   在添加语言设置里选择“英语”,并点击“打开”按钮,在“区域变量”设置页面里选择“英语(美国)” , ...

  9. Linq to Sql 动态条件另类实现方法

    其实我也不知道是不是另类的,反正我找了好久园子里和其他资源. 无外乎两类 1,构造动态表达式的,这个真心繁琐,我是懒人,不想弄表达式. 2,拼SQL语句,直接执行,这个和ado.net就没有啥区别了. ...

  10. PCL中使用FLANN库(1)

    FLANN库全称是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近邻开源库.不但实现了一系列查找算法,还包含了一种自动选取最快 ...