@@ -0,0 +1,102 @@ | |||
# spring-boot-demo-war | |||
> 本 demo 主要演示了如何将 Spring Boot 项目打包成传统的 war 包程序。 | |||
## pom.xml | |||
```xml | |||
<?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> | |||
<artifactId>spring-boot-demo-war</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<!-- 若需要打成 war 包,则需要将打包方式改成 war --> | |||
<packaging>war</packaging> | |||
<name>spring-boot-demo-war</name> | |||
<description>Demo project for Spring Boot</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
</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> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
<!-- 若需要打成 war 包,则需要将 tomcat 引入,scope 设置为 provided --> | |||
<dependency> | |||
<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-test</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<finalName>spring-boot-demo-war</finalName> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> | |||
``` | |||
## SpringBootDemoWarApplication.java | |||
```java | |||
/** | |||
* <p> | |||
* 启动器 | |||
* </p> | |||
* | |||
* @package: com.xkcoding.war | |||
* @description: 启动器 | |||
* @author: shenyangkai | |||
* @date: Created in 2018/10/30 19:37 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: shenyangkai | |||
*/ | |||
@SpringBootApplication | |||
public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||
public static void main(String[] args) { | |||
SpringApplication.run(SpringBootDemoWarApplication.class, args); | |||
} | |||
/** | |||
* 若需要打成 war 包,则需要写一个类继承 {@link SpringBootServletInitializer} 并重写 {@link SpringBootServletInitializer#configure(SpringApplicationBuilder)} | |||
*/ | |||
@Override | |||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | |||
return application.sources(SpringBootDemoWarApplication.class); | |||
} | |||
} | |||
``` | |||
## 参考 | |||
https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#howto-create-a-deployable-war-file | |||
@@ -1,48 +1,56 @@ | |||
<?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> | |||
<artifactId>spring-boot-demo-war</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>jar</packaging> | |||
<name>spring-boot-demo-war</name> | |||
<description>Demo project for Spring Boot</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
</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> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-test</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<finalName>spring-boot-demo-war</finalName> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
<modelVersion>4.0.0</modelVersion> | |||
<artifactId>spring-boot-demo-war</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<!-- 若需要打成 war 包,则需要将打包方式改成 war --> | |||
<packaging>war</packaging> | |||
<name>spring-boot-demo-war</name> | |||
<description>Demo project for Spring Boot</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
</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> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
<!-- 若需要打成 war 包,则需要将 tomcat 引入,scope 设置为 provided --> | |||
<dependency> | |||
<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-test</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<finalName>spring-boot-demo-war</finalName> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> |
@@ -2,6 +2,8 @@ package com.xkcoding.war; | |||
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; | |||
/** | |||
* <p> | |||
@@ -17,9 +19,17 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; | |||
* @modified: shenyangkai | |||
*/ | |||
@SpringBootApplication | |||
public class SpringBootDemoWarApplication { | |||
public class SpringBootDemoWarApplication extends SpringBootServletInitializer { | |||
public static void main(String[] args) { | |||
SpringApplication.run(SpringBootDemoWarApplication.class, args); | |||
} | |||
/** | |||
* 若需要打成 war 包,则需要写一个类继承 {@link SpringBootServletInitializer} 并重写 {@link SpringBootServletInitializer#configure(SpringApplicationBuilder)} | |||
*/ | |||
@Override | |||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | |||
return application.sources(SpringBootDemoWarApplication.class); | |||
} | |||
} |
@@ -0,0 +1,4 @@ | |||
server: | |||
port: 8080 | |||
servlet: | |||
context-path: /demo |