how2j.cn

下载区
文件名 文件大小
tomcat_8080.rar 7m
springboot.rar 1k
步骤 1 : 部署方式   
步骤 2 : 可运行项目   
步骤 3 : Application   
步骤 4 : pom.xml   
步骤 5 : 创建war包   
步骤 6 : 重命名 war 包,然后部署   
步骤 7 : 启动并测试   

Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢?
通常来说,Springboot 部署会采用两种方式:全部打包成一个jar,或者打包成一个war。
本知识点讲解 war 的方式。
开发过程在前面的知识点讲解过了,这里就不表了,首先在右上角下载可运行项目。
下载后解压,比如解压到如图所示目录
可运行项目
Application 修改为如下代码
新加@ServletComponentScan注解,并且继承SpringBootServletInitializer 。
为什么要这么改? 这是规定。。。。 要搞成war ,反正就得这么改~
package com.how2java.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.boot.web.support.SpringBootServletInitializer; @SpringBootApplication @ServletComponentScan public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
pom.xml修改为如下代码,主要两个改动
新加打包成war的声明:

<packaging>war</packaging>

spring-boot-starter-tomcat修改为 provided方式,以避免和独立 tomcat 容器的冲突.
表示provided 只在编译和测试的时候使用,打包的时候就没它了。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.how2java</groupId> <artifactId>springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot</name> <description>springboot</description> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <properties> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

cd C:\Users\X7TI\Downloads\springboot
mvn clean package

这样就在 target 目录下 生成了一个 springboot-0.0.1-SNAPSHOT.war 文件
创建war包
步骤 6 :

重命名 war 包,然后部署

edit
如果用 springboot-0.0.1-SNAPSHOT.war 这个文件名部署,那么访问的时候就要在路径上加上springboot-0.0.1-SNAPSHOT。 所以把这个文件重命名为 ROOT.war
然后把它放进tomcat 的webapps目录下。

注:没有tomcat的同学可以在右上角下载。
注: ROOT.war 并不是指访问的时候要使用 /ROOT/hello ,而是直接使用/hello 进行访问,ROOT表示根路径。
重命名 war 包,然后部署
运行tomcat下的 bin目录里的startup.bat, 然后就可以启动了. 启动后访问如下地址测试:

http://127.0.0.1:8080/hello
启动并测试


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2021-05-17 我打包不通过的处理方法
简单_a

我的问题:打包不成功 我的解决:注释掉<scope>provided</scope> 加上: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin>







回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2021-03-16 war 包重名名后访问不成功
silvershock

war包修改为 ROOT.war 放到 tomcat 的webapps目录下,启动 tomcat 时,访问 http://127.0.0.1:8080/hello 报404错误, 没有重命名,springboot-0.0.1-SNAPSHOT.war 放到tomcat 的webapps目录下,启动 tomcat 时,访问 http://127.0.0.1:8080/springboot-0.0.1-SNAPSHOT/hello 可以成功访问




1 个答案

萌森
答案时间:2021-07-27
删除webapp下的ROOT文件夹就可以了,文件夹的存在会默认加载文件夹的内容



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2021-01-19 访问的时候404的问题,测试有两种方式可行
2020-11-15 站长能讲一下项目打包成Jar包和War包之后的区别吗?
2020-10-20 打包报错


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 28 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 框架-SpringBoot-部署-war 方式 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图