SpringBoot应用部署于外置Tomcat容器的方法

0x01. 概述

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

0x02. 修改打包方式

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

<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

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

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

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <!-- 移除嵌入式tomcat插件 -->
 <exclusions>
  <exclusion>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
  </exclusion>
 </exclusions>
</dependency>

0x04. 添加servlet-api依赖

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

<dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>javax.servlet-api</artifactId>
 <version>3.1.0</version>
 <scope>provided</scope>
</dependency>

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

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

@SpringBootApplication
public 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:[端口号]

总结

以上所述是小编给大家介绍的SpringBoot应用部署于外置Tomcat容器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • SpringBoot深入理解之内置web容器及配置的总结

    前言 在学会基本运用SpringBoot同时,想必搭过SSH.SSM等开发框架的小伙伴都有疑惑,SpringBoot在spring的基础上做了些什么,使得使用SpringBoot搭建开发框架能如此简单,便捷,快速.本系列文章记录网罗博客.分析源码.结合微薄经验后的总结,以便日后翻阅自省. 正文 使用SpringBoot时,首先引人注意的便是其启动方式,我们熟知的web项目都是需要部署到服务容器上,例如tomcat.weblogic.widefly(以前叫JBoss),然后启动web容器真正运行我

  • 关于SpringBoot获取IOC容器中注入的Bean(推荐)

    一: 注入一个TestUtils类 package com.shop.sell.Utils; import com.shop.sell.dto.CartDTO; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class TestUtils { @Bean(name="test

  • SpringBoot部署在tomcat容器中运行的部署方法

    部署在tomcat容器中首先需要添加一些新的包和启动程序 1.在pom.xml文件中packaging便签下 jar 改为 war <packaging>war</packaging> 2.在pom.xml文件中添加新的依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artif

  • SpringBoot 项目如何在tomcat容器中运行的实现方法

    一. SpringBoot内嵌容器的部署方式 SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当前目录下执行java -jar demo.jar即可运行,但是这种方式的运行退出进程就结束了.如果想在后台可以运行,则需要执行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后台运行该服务了,log_demo.file是日志文件.如需停止该进程 执行ps -ef|grep

  • springboot关于容器启动事件总结

    在springboot 容器启动时,我们需要在启动过程中做一些操作,比如启动容器后,执行某些代码. spring 提供了监听器,我们可以方便的实现这些操作. 在容器启动开始时: package com.neo.filter; import org.springframework.boot.context.event.ApplicationStartingEvent; import org.springframework.context.ApplicationListener; public cl

  • SpringBoot应用部署于外置Tomcat容器的方法

    0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手.但考虑到实际的情形中,我们的Tomcat服务器一般是另外部署好了的,有专门的维护方式.此时我们需要剥离掉SBT应用内置的Tomcat服务器,进而将应用发布并部署到外置的Tomcat容器之中,本文就实践一下这个. 0x02. 修改打包方式 修改项目的pom.xml配置,我们修改其打包方式为war方式,如: <groupI

  • springboot打war包部署到外置tomcat容器的方法

    目录 一.修改打包方式 二. 排除内置tomcat的依赖 三.新增加一个类继承SpringBootServletInitializer实现configure: 四.build要有finalName标签 五.打包与运行 打war包部署到外置tomcat容器 一.修改打包方式 <packaging>war</packaging> 将上面的代码加入到pom.xml文件刚开始的位置,如下: 二. 排除内置tomcat的依赖 我们使用外置的tomcat,自然要将内置的嵌入式tomcat的相关

  • maven自动部署到远程tomcat服务器的方法

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

  • Springboot如何切换默认的Tomcat容器

    代码如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spr

  • spring-boot-starter-web更换默认Tomcat容器的方法

    Spring Boot支持容器的自动配置,默认是Tomcat,当然我们也是可以进行修改的. 我们知道Spring Boot支持容器的自动配置,默认是Tomcat,当然我们也是可以进行修改的: 1.首先我们排除spring-boot-starter-web依赖中的Tomcat:在pom文件中排除tomcat的starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>

  • 使用supervisor管理nginx+tomcat容器的方法示例

    需求: 使用docker来启动nginx + tomcat 双进程,实际应用中,多进程还是比较常见的. 1: 创建dockerfile目录 mkdir -p /docker/web 2: 编写dockerfile: /docker/web/Dockerfile FROM centos7 MAINTAINER lin test@163.com COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo COPY nginx_install.sh

  • springboot使用外置tomcat启动方式

    目录 使用外置tomcat启动 使用外置的tomcat启动注意事项 使用外置tomcat启动 打开pom文件,把打包格式设置为war <packaging>war</packaging> SpringBoot默认有内置的tomcat运行模块,可以在Application(继承SpringBootServletInitializer)中直接main启动. 如下配置可在外置tomcat容器中运行 <dependency> <groupId>org.springf

  • 如何把spring boot项目部署到tomcat容器中

    把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码, <dependency> <groupId>org.springframework.boot</groupId> <artifactId&

  • SpringBoot应用部署到Tomcat中无法启动的解决方法

    背景 最近公司在做一些内部的小型Web应用时, 为了提高开发效率决定使用SpringBoot, 这货自带Servlet容器, 你在开发Web应用时可以直接在本地像运行控制台应用一样启动,省去了重复部署的时间:配置上相比于SpringMVC也是有了大大的简化.SpringBoot的应用可以直接打成一个可运行的jar包, 你无需发愁为了不同应用要部署多个Tomcat.但是实际部署时你会发现打成Jar包的方式有一个致命的缺点, 当你改动了一个资源文件.或者一个类时, 打要往服务器重新上传全量jar包.

随机推荐