前言:

平时在使用java做项目开发时,首先想到利用框架来提升开发效率,和提高可维护性。选择spring可以使用ssm(spring框架,springMVC,mybatis),而且企业中应用也比较广泛,然而还是发现,在框架中有很多配置,而且看起来相当繁琐,并且在这些配置中,大部分都属于默认配置,习惯配置。因此spring boot就此诞生,它的主要目的就是实现“0”配置,此处的“0”不是代表没有配置,而是代表极少的配置。并且spring boot还内置了tomcat。

Tomcat是一种web容器,类似于apache、nginx等,提供web服务的服务器软件。它属于轻量级,方便启动和配置的web服务器,非常适合用来学习之用。不过有时候也可以作为生产服务器来部署,通过搭建集群提高可用性和高负载性。上面说到spring boot内置了tomcat,就意味着spring boot项目可以自己运行(编写入口类,打为jar包,使用java -jar 包名.jar来运行)但是在有的情况下我们既需要发布软件的灵活性,又想使用spring boot为我们带来的便利,因此我们就需要将spring boot项目当做普通项目一样打成war包发布到tomcat,这正是本章编写的目的。

spring boot项目打war包发布的步骤(此处以maven做讲解):

1、构建spring应用(继承SpringBootServletInitializer并重写configure方法)

将入口文件做修改,代码如下:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication

public class WebApplication extends SpringBootServletInitializer {

public static void main(String[] args) {

SpringApplication.run(WebApplication.class, args);

}

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebApplication.class);

}

}

2、配置pom.xml文件

A、先将打包类型做设置:

<packaging>jar</packaging>

改为:

<packaging>war</packaging>

B、其他配置如下

<!-- 继承spring boot -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.1.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<!-- 设置属性编码与版本-->

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<!--设置打包时包的名称-->

<build>

<finalName>ROOT</finalName>

</build>

<!--配置依赖-->

<dependencies>

<!--java持久化API主要用于和数据库交互-->

<dependency>

<groupId>javax.persistence</groupId>

<artifactId>persistence-api</artifactId>

<version>1.0</version>

</dependency>

<dependency>

<!-- 移除嵌入式tomcat插件避免与发布后的环境冲突 -->

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

<!--对数据库的支持-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<!-- RabbitMQ -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

<!--用于提供web服务(servlet容器)-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<!--引入thymeleaf模板引擎-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

<!--引入测试插件比如Junit-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.webjars</groupId>

<artifactId>jquery</artifactId>

<version>3.3.0</version>

</dependency>

<dependency>

<groupId>org.webjars</groupId>

<artifactId>bootstrap</artifactId>

<version>3.3.7</version>

</dependency>

<!--引入全文检索-->

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-solr</artifactId>

<version>2.1.1.RELEASE</version>

</dependency>

<!--  httpclient -->

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.3.5</version>

</dependency>

<!--自动重启或自动关闭缓存等功能于开发很有用-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<optional>true</optional>

</dependency>

<!-- 数据库连接池 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.0.8</version>

</dependency>

<!--引入阿里巴巴连接池-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.1.9</version>

</dependency>

</dependencies>

最后使用右键项目:

Run As > maven clean(清除已打包的其他文件) > maven install(打包)

然后在target目录下便可以看到设置了<finalName>ROOT</finalName>的war包,

之后发布即可

转载于:https://blog.51cto.com/lxqybyq/2106975

Spring boot如何打war包发布到tomcat相关推荐

  1. IDEA下spring boot项目打包war包部署外部tomcat问题

    第一步,修改配置pom.xml文件 <packaging>war</packaging> <dependency> <groupId>org.sprin ...

  2. Spring Boot项目打war包(idea:多种方式)

    Spring Boot项目打war包(idea:多种方式) 前言:在idea中,经常会对web项目进行打jar包或者war包.jar包在Java环境中运行,war包在Tomcat服务器中跑.对于打wa ...

  3. spring boot 项目打成war包部署到服务器

    这是spring boot学习的第二篇了,在上一篇已经整合了spring boot项目了,如果还有小伙伴没有看得可以先去看第一篇 基础整合spring boot项目 到这里的小伙伴应该都是会整合基本的 ...

  4. Java工作笔记-使用Maven创建Spring Boot并生成war包外部tocamt运行

    目录 基本概念 代码与实例 基本概念 目前发现很多Java项目都是直接使用Maven作项目管理,在Maven中配置依赖,比如Spring boot完成操作,在经历了这么多操作后,还发现大家喜欢把Mav ...

  5. 重磅!Spring Boot 2.5.0火热发布,还学得动吗?

    今年520的事情是真的多,把Spring Boot 2.5.0的版本发布都给忽略了! 今天跟我一起看看Spring Boot 2.5.0又都带来了哪些振奋人心的新特性吧! 主要更新 支持 Java 1 ...

  6. war包部署vue_又一干货实战,spring boot2:以 War 包的形式部署

    1. 前言 Spring Boot 提供了内置的 tomcat.undertow.jetty 三种 Servlet Web 容器.让我们开箱即用,可以迅速以 JAR 启动一个 Web 应用.但是在某些 ...

  7. springboot项目打war包发布到外置tomcat

    第一步:修改pom.xml 1. <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> ...

  8. Spring Boot Admin 2.5.5 发布,支持在线重启服务

    来源 | https://mp.weixin.qq.com/s/kKhqEbgvRGW6AiHPt0eXbA Spring Boot Admin 2.5.5 发布,这是一个错误修正版本.现在可以从 m ...

  9. jar注册成服务器,Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动(示例代码)...

    背景: 使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中 尝试: 1.Spring Boot生成的jar包,可以直接用java -jar运行,但是 ...

最新文章

  1. 小记,springboot项目中自己常用的logback配置文件
  2. 精心整理,机器学习的3大学习资源
  3. C Tester Doer Pattern
  4. Server 2008 Core/服务器核心环境安装SQL 2008 方法
  5. 收购Roambi,SAP欲领导商务分析云迁移全球市场
  6. 【Python基础知识-pycharm版】第三节-列表
  7. ios支付宝支付失败不回调_为什么 iOS 支付成功后能回到 APP ,但是没有回调?...
  8. Element-UI中Cascader 级联选择器使用
  9. flask-配置的设置-三种配置的实现方法
  10. asp.net mvc源码分析-Action篇 DefaultModelBinder
  11. c++11 多线程编程(四)------ 死锁(Dead Lock)
  12. python数据包之利器scapy用法!
  13. 【C# 练习】C# 程序设计实用教程(第2版)黄兴荣
  14. 08-A. 旅馆顾客统计(静态成员)
  15. ThreeJs DRACO压缩并加载gltf模型
  16. 金三银四,作为Java程序员的你为什么面试总拿不到高薪?
  17. manjaro i3wm社区版配置记录
  18. 电气绘图软件EPLAN在WIN10详细安装教程
  19. Java 9 与 Java 10
  20. 基于云桌面的外部设备重定向技术调研

热门文章

  1. 梧州计算机学考查询,学考成绩查询
  2. /plus/recommend.php sql注入漏洞,DedeCMS 全版本通杀SQL注入漏洞利用代码及工具 -
  3. python pip install pillow_Windows下Python中pip安装Pillow报错总结(转载)
  4. PHP实现8进制转10进制,php 实现进制相互转换
  5. 按照自己的理解用js实现八皇后的算法
  6. 软件部署在不同linux上,如何在Linux中安装和部署keepalived
  7. vue 地图使用navigator_9 个实验 + 3 个项目,带你入门 Vue.js 3 !
  8. oracle undo seg,正确切换undo
  9. php 多维数组怎么表达,php 对多维数组的操作,该怎么解决
  10. linux怎么测试一个脚本,一个Linux中用于监控的简易shell脚本