步骤 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 文件
如果用 springboot-0.0.1-SNAPSHOT.war 这个文件名部署,那么访问的时候就要在路径上加上springboot-0.0.1-SNAPSHOT。 所以把这个文件重命名为 ROOT.war
然后把它放进tomcat 的webapps目录下。 注:没有tomcat的同学可以在右上角下载。 注: ROOT.war 并不是指访问的时候要使用 /ROOT/hello ,而是直接使用/hello 进行访问,ROOT表示根路径。
运行tomcat下的 bin目录里的startup.bat, 然后就可以启动了. 启动后访问如下地址测试:
http://127.0.0.1:8080/hello
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2021-05-17
我打包不通过的处理方法
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2021-03-16
war 包重名名后访问不成功
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2021-01-19
访问的时候404的问题,测试有两种方式可行
2020-11-15
站长能讲一下项目打包成Jar包和War包之后的区别吗?
2020-10-20
打包报错
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 28 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|