SpringBoot项目如何打war包问题详解

 更新时间:2021年05月14日 15:59:22   作者:liucy007  
传统的部署方式:将项目打成war包,放入tomcat的webapps目录下面,启动tomcat,即可访问.文中有非常详细的介绍,对正在学习springboot的小伙伴很有帮助,需要的朋友可以参考下

1、pom.xml配置修改

<packaging>jar</packaging>
//修改为
<packaging>war</packaging>

2、pom文件添加如些依赖

<!--添加servlet-api的依赖,用来打war包 -->
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<scope>provided</scope>
</dependency>

3、排除springboot内置的tomcat干扰

<!--最终打成war包,排除内置的tomcat-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</exclusion>
	</exclusions>
</dependency>

4、改造启动类

如果是war包发布,需要增加SpringBootServletInitializer子类,并重写其configure方法,
或者将main函数所在的类继承SpringBootServletInitializer,并重写configure方法
当时打包为war时上传到tomcat服务器中访问项目始终报404错就是忽略了这个步骤!!!

改造之前:

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

改造之后:

@SpringBootApplication
public class SpringBootMytestApplication extends SpringBootServletInitializer {
	public static void main(String[] args) {
		SpringApplication.run(SpringBootMytestApplication.class, args);
	}
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// 注意这里要指向原先用main方法执行的Application启动类
		return builder.sources(SpringBootMytestApplication.class);
	}
}

这种改造方式也是官方比较推荐的方法

5、pom文件中不要忘了maven编译插件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

打包操作:

在这里插入图片描述
在这里插入图片描述

war包打包成功。

如果想用idea中的外置tomcat验证war包是否正常,方法如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如果不改成“/” 访问时路径前要加上此路径内容,如下图。

在这里插入图片描述
在这里插入图片描述

验证成功

到此这篇关于SpringBoot项目如何打war包问题详解的文章就介绍到这了,更多相关SpringBoot项目打war包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# TreeNode案例详解

    C# TreeNode案例详解

    这篇文章主要介绍了C# TreeNode案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java中Date与String相互转换的方法

    Java中Date与String相互转换的方法

    这篇文章主要为大家详细介绍了Java中Date与String相互转换方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 在Spring Boot中如何使用Cookies详析

    在Spring Boot中如何使用Cookies详析

    这篇文章主要给大家介绍了关于在Spring Boot中如何使用Cookies的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • 如何避免在Java项目里大批量使用if-else?

    如何避免在Java项目里大批量使用if-else?

    想起刚开始接触JAVA时,若遇到大量流程判断语句,几乎满屏都是if-else语句,多得让自己都忘了哪里是头,哪里是尾,但是,纵然满屏是if-else,但彼时也没有觉得多别扭.等到编程能力渐渐提升之后,再回过头去看曾经写过的满屏if-else时,感觉全都是翔.....,需要的朋友可以参考下
    2021-06-06
  • SpringSecurity自定义Form表单使用方法讲解

    SpringSecurity自定义Form表单使用方法讲解

    这篇文章主要介绍了Spring Security自定义Form表单使用方法,虽然 Spring Security 提供了默认的登录表单,实际项目里肯定是不可以直接使用的,当然 Spring Security 也提供了自定义登录表单的功能
    2023-01-01
  • SpringAOP中基于注解实现通用日志打印方法详解

    SpringAOP中基于注解实现通用日志打印方法详解

    这篇文章主要介绍了SpringAOP中基于注解实现通用日志打印方法详解,在日常开发中,项目里日志是必不可少的,一般有业务日志,数据库日志,异常日志等,主要用于帮助程序猿后期排查一些生产中的bug,需要的朋友可以参考下
    2023-12-12
  • 详解Java的JDBC中Statement与PreparedStatement对象

    详解Java的JDBC中Statement与PreparedStatement对象

    这篇文章主要介绍了详解Java的JDBC中Statement与PreparedStatement对象,PreparedStatement一般来说比使用Statement效率更高,需要的朋友可以参考下
    2015-12-12
  • java字符串转数字及各种数字转字符串的3种方法

    java字符串转数字及各种数字转字符串的3种方法

    这篇文章主要介绍了java字符串转数字及各种数字转字符串的3种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • SpringBoot JPA出现错误:No identifier specified for en解决方案

    SpringBoot JPA出现错误:No identifier specified&nb

    这篇文章主要介绍了SpringBoot JPA出现错误:No identifier specified for en解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java8之lambda最佳实践_动力节点Java学院整理

    Java8之lambda最佳实践_动力节点Java学院整理

    在8 里面Lambda是最火的主题,不仅仅是因为语法的改变,更重要的是带来了函数式编程的思想,我觉得优秀的程序员,有必要学习一下函数式编程的思想以开阔思路
    2017-06-06

最新评论