博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot应用部署于外置Tomcat容器
阅读量:6083 次
发布时间:2019-06-20

本文共 1940 字,大约阅读时间需要 6 分钟。

Desktop


0x01. 概述

SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手。但考虑到实际的情形中,我们的Tomcat服务器一般是另外部署好了的,有专门的维护方式。此时我们需要剥离掉SBT应用内置的Tomcat服务器,进而将应用发布并部署到外置的Tomcat容器之中,本文就实践一下这个。

注: 本文首发于 My 公众号
CodeSheep ,可
长按
扫描 下面的
小心心 来订阅 ↓ ↓ ↓

CodeSheep · 程序羊


0x02. 修改打包方式

修改项目的pom.xml配置,我们修改其打包方式为war方式,如:

com.example
demo
0.0.1-SNAPSHOT
war

0x03. 移除SBT自带的嵌入式Tomcat

修改pom.xml,从maven的pom中移除springboot自带的的嵌入式tomcat插件

org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat

0x04. 添加servlet-api依赖

修改pom.xml,在maven的pom中添加servlet-api的依赖

javax.servlet
javax.servlet-api
3.1.0
provided

0x05. 修改启动类,并重写初始化方法

在SpringBoot中我们平常用main方法启动的方式,都有一个SpringBootApplication的启动类,类似代码如下:

@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

而我们现在需要类似于web.xml的配置方式来启动spring应用,为此,我们在Application类的同级添加一个SpringBootStartApplication类,其代码如下:

// 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法public class SpringBootStartApplication extends SpringBootServletInitializer {    @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {        // 注意这里一定要指向原先用main方法执行的Application启动类        return builder.sources(Application.class);    }}

0x06. 部署到外部的Tomcat容器并验证

  • 在项目根目录下(即包含pom.xml的目录)记性maven打包操作:
mvn clean package

等待打包完成,出现 [INFO] BUILD SUCCESS 即为打包成功

  • 然后我们把target目录下生成的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。

最后在浏览器中验证:

http://YOUR_IP:[端口号]/[打包项目名]

浏览器验证

  • 也可以直接将项目命名为ROOT,这样访问根目录即可访问tomcat中的SpringBoot应用
http://YOUR_IP:[端口号]

直接将项目命令为ROOT

浏览器验证


后记

作者更多的SpringBt实践文章在此:


如果有兴趣,也可以抽点时间看看作者一些关于容器化、微服务化方面的文章:


CodeSheep · 程序羊


转载地址:http://wqkwa.baihongyu.com/

你可能感兴趣的文章
springboot集成springsession利用redis来实现session共享
查看>>
文件上传与下载总结
查看>>
【测试基础】测试用例的设计方法
查看>>
MySQL优化-》执行计划和常见索引
查看>>
ThinkPHP中通过URL重写隐藏应用的入口文件index.php的相关服务器的配置
查看>>
18、图片 & 多媒体
查看>>
第七周进度总结
查看>>
Android任务栈的运行规律
查看>>
批处理通用测试代码
查看>>
uva 10594 Data Flow
查看>>
POJ 3592 Instantaneous Transference
查看>>
redis数据类型(字符串)
查看>>
解决火狐浏览器安装不上Selenium IDE插件“此附加组件无法安装”
查看>>
How PD works in Agile team
查看>>
存储过程 触发器,视图
查看>>
Dockerfile详解
查看>>
Archlinux添加MP3播放器
查看>>
django连接Oracle过程中出现的问题
查看>>
第七周作业——基础
查看>>
tp框架之增删改查
查看>>