SpringBoot打成war包,部署到Tomcat服务器

前言

 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。

1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging**)方式改为war。**

1 <modelVersion>4.0.0</modelVersion> 2 <parent> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-parent</artifactId> 5 <version>2.2.2.RELEASE</version> 6 <relativePath/> <!-- lookup parent from repository --> 7 </parent> 8 <groupId>com.example.mybaties</groupId> 9 <artifactId>springbootmybaties</artifactId> 10 <version>0.0.1-SNAPSHOT</version> 11 <name>springbootmybaties</name> 12 <description>Demo project for Spring Boot</description> 13 <!--默认为jar方式--> 14 <!--<packaging>jar</packaging>--> 15 <!--改为war方式--> 16 <packaging>war</packaging>

2、排除内置的Tomcat容器

1)第一种方式

1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-web</artifactId> 4 <!--排除内置的Tomcat容器--> 5 <exclusions> 6 <exclusion> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-tomcat</artifactId> 9 </exclusion> 10 </exclusions> 11 </dependency>

2)第二种方式

1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-tomcat</artifactId> 4 <scope>provided</scope> 5 </dependency>

3、继承org.springframework.boot.web.servlet.support.SpringBootServletInitializer,重写configure方法。

1)第一种方式,启动类继承SpringBootServletInitializer重写configure

1package com.example.mybaties; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5import org.springframework.boot.builder.SpringApplicationBuilder; 6import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 7 8@SpringBootApplication 9public class SpringbootmybatiesApplication extends SpringBootServletInitializer { 10 11 public static void main(String[] args) { 12 SpringApplication.run(SpringbootmybatiesApplication.class, args); 13 } 14 15 @Override 16 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 17 return builder.sources(SpringbootmybatiesApplication.class); 18 } 19 20 21}

2)新增加一个类继承SpringBootServletInitializer重写configure

1package com.example.mybaties.config; 2 3import com.example.mybaties.SpringbootmybatiesApplication; 4import org.springframework.boot.builder.SpringApplicationBuilder; 5import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 6 7/** 8 * @author LST 9 * @version 1.0 10 * @Description: 11 * @date 2020-1-17 16:19 12 */ 13public class ServletInitializer extends SpringBootServletInitializer { 14 15 @Override 16 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 17 //此处的Application.class为带有@SpringBootApplication注解的启动类 18 return builder.sources(SpringbootmybatiesApplication.class); 19 } 20}

4、为了防止应用上下文所导致的项目访问资源加载不到的问题,建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签

1 <build> 2 <!--上下文路径--> 3 <finalName>mybaties</finalName> 4 <plugins> 5 <plugin> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-maven-plugin</artifactId> 8 </plugin> 9 </plugins> 10 </build>

5、打成war包

先clean再打包:mvn clean package -Dmaven.test.skip=true,也可使用idea自带的打包

6、将war包放入tomcat中,我使用的是tomcat8.

7、进入tomcat的bin目录下启动项目

8、直接用浏览器访问我的接口(这个接口是get)http://127.0.0.1:8080/mybaties/user/0ac94d4eab22610c71af9a02bd4e296c,或者使用postman等测试工具。

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springboot部署到tomcat

把springboot项目按照平常的web项目一样发布到tomcat容器下多点经验:1.保证运行环境的jdk和开发环境一致,不然class文件无法被编译2.保证tomcat和java的版本匹配,不然tomcat无法启动3.集群一般会进行ip和域名的映射,如果tomcat服务器不在集群内,需要在所在服务器进行

springboot项目打成war包

在某种情况下,比如。。。。。。。。。。之下,我们不得不,将springboot打成war包1、在pom.xml文件中修改<packagingwar</packaging2、移除springboot自带的tomcat<!移除自带的tomcat<dependency<groupIdorg.spri

SpringBoot内置tomcat启动过程及原理

SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,启动tomcat。因为内置了启动容器,应用程序可以直接通过Maven命令将项目编译成可执行的jar包,通过javajar命令直接启动,不需要再像以前一样,打包成War包,然后部署在Tomcat中。那么内置tomcat是如何实现的呢

Spring Boot中application.properties优先级顺序

application.properties,用来配置一些可以手动修改而且不用编译的变量,这样的作用在于,打成war包或者jar包用于生产环境时,我们可以手动修改环境变量而不用再重新编译。springboo默认已经配置了很多环境变量,例如,tomcat的默认端口是8080,项目的contextpath是“/”等等(更多请看https://docs.s

ubuntu 18.04 server下tomcat部署sprongboot项目

1springboot项目相关1.1修改pom.xml文件依赖如果要将最终的打包形式改为war的话,还需要对pom.xml文件进行修改,因为springbootstarterweb中包含内嵌的tomcat容器,所以直接部署在外部容器会冲突报

SpringBoot打成war包,部署到Tomcat服务器 - HelloWorld