Spring Boot如何移除内嵌Tomcat,使用非web方式启动

前言:当我们使用Spring Boot编写了一个批处理应用程序,该程序只是用于后台跑批数据,此时不需要内嵌的tomcat,简化启动方式使用非web方式启动项目,步骤如下:

1、修改pom.xml文件

在pom.xml文件中去除内嵌tomcat,添加servlet依赖

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <!--去除内嵌tomcat -->
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!--添加servlet的依赖-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>compile</scope>
    </dependency>

2、设置打包方式

在pom.xml文件中将打项目包方式设置成jar,打成jar包通过命令去执行jar

<packaging>jar</packaging>

3、禁用web程序启动方式

对于非Web应用程序,请在属性文件中禁用Web应用程序类型,application.yml文件中添加:

spring:
  main:
   web-application-type: none

4、在启动类中扩展

继承SpringBootServletInitializer 类,以下本人写了一个测试方法,项目启动后生成一个txt文件进行测试

@SpringBootApplication
public class TestiopojApplication extends SpringBootServletInitializer {

  public static void main(String[] args) {
    System.out.println("项目开始启动,开始执行任务============");
    SpringApplication.run(TestiopojApplication.class, args);
    String file = "E:\\copyFile";//文件存放路径
    String fileName = "test测试";//生成的文件名
    String strContext = "测试成功=======";//文件内容
    try {
      FileUtils.writeStringToFile((new File(file + File.separator + fileName + ".txt")), strContext, "UTF-8");
      System.out.println("文件创建成功============");
    } catch (IOException e) {
      System.out.println("文件创建失败============");
    }
  }

}

5、实列测试结果

由此我们可以通过java -jar 运行打包后的项目jar,控制台显示Spring Boot启动标志,项目正常启动,文件也正常创建成功,大功告成

以上就是Spring Boot如何移除内嵌Tomcat,使用非web方式启动的详细内容,更多关于Spring Boot移除内嵌Tomcat的资料请关注我们其它相关文章!

(0)

相关推荐

  • 解决SpringBoot webSocket 资源无法加载、tomcat启动报错的问题

    问题描述: 1. 项目集成WebSocket,且打包发布tomcat时出现websocket is already in CLOSING or CLOSE state这样的问题,建议参考"解决方法二",但是"解决方法一"请要了解查看 ,因为解决方法二是在一的基础上进行更正 2. 如果出现javax.websocket.server.ServerContainer not available这样的错误,请参考"解决方法一"中步骤3 解决方法一:(常

  • 详解springboot项目带Tomcat和不带Tomcat的两种打包方式

    1,带Tomcat的打包方式 1.1, 在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码) <build> <plugins> <!--打包为jar时指定main入口--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <

  • 解决spring boot + jar打包部署tomcat 404错误问题

    1.spring boot 不支持jsp打jar包,jsp只能打war包. 方法: <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin

  • 浅谈SpringBoot内嵌Tomcat的实现原理解析

    一.序言 使用SpringBoot经常会使用内嵌的tomcat做为项目的启动容器,本文将从源码的角度出发,剖析SpringBoot内嵌Tomcat的实现原理,讨论Tomcat何时创建.何时启动以及怎么启动. 二.引入Tomcat组件 导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&

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

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

  • Tomcat启动springboot项目war包报错:启动子级时出错的问题

    今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错: java.lang.IllegalStateException: 启动子级时出错   at org.apache.catalina.core.ContainerBase.addChildInternal(Containe

  • docker安装tomcat并部署Springboot项目war包的方法

    说来也简单,直接上教程吧,博主 1.首先在启动docker service docker start 2.拉取tomcat镜像. docker pull tomcat:8-jdk8 如果不加后面的8-jdk8  标签的话,会默认拉取latest,也就是最新的官方版本 3.安装完成后,做作容器,并启动tomcat docker run --name tomcat -p 8080:8080 如果正常安装后访问ip+端口出现404情况,进入tomcat目录,把原有webapps目录删除,并把webap

  • SpringBoot2使用Jetty容器操作(替换默认Tomcat)

    Jetty和tomcat的比较 Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范. 架构比较 Jetty的架构比Tomcat的更为简单 Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单. Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展. 性能比较 Jetty和Tomcat性能方面差异不大 Jetty可以同时处理大量连接而且可以长时间保持连接,适合

  • 解决Spring boot 嵌入的tomcat不启动问题

    此文章记录一次spring boot通过main 方法启动无法成功的问题 Unregistering JMX-exposed beans on shutdown 问题如下,因为已经解决用的别人的截图但是效果是一样的 百度了一圈都说tomcat没有配置,但实际xml有如下配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomc

  • SpringBoot去除内嵌tomcat的实现

    SpringBoot内嵌tomcat,直接run Application即可,那么我们如何去除内嵌的tomcat,使用自己的呢? 一.POM(去除内嵌tomcat后,需要添加servlet依赖) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 去除内嵌tomcat --

  • 浅谈springboot内置tomcat和外部独立部署tomcat的区别

    前两天,我去面了个试,面试官问了我个问题,独立部署的tomcat跟springboot内置的tomcat有什么区别,为什么存在要禁掉springboot的tomcat然后将项目部署到独立的tomcat当中? 我就想,不都一个样?独立部署的tomcat可以配置优化?禁AJP,开多线程,开nio?而且springboot内置的tomcat多方便,部署上服务器写个java脚本运行即可.现在考虑下有什么条件能优于内置tomcat的. 1.tomcat的优化配置多线程?内置的也可以配置多线程 server

随机推荐