本文介绍了Spring Boot 部署jar和war两种方式的区别,分享给大家,具体如下:
1、 packaging的方式不同,一种设置成jar一种是war
1
2
3
4
5
6
7
8
9
10
|
< 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/maven-v4_0_0.xsd" > < modelVersion >4.0.0</ modelVersion > < groupId >cn.vcyber.www</ groupId > < artifactId >vcyber-api</ artifactId > <!--这个地方有所区别 --> < packaging >war</ packaging > < version >1.0-SNAPSHOT</ version > < name >vcyber-api</ name > < url >http://maven.apache.org</ url > |
2、 继承的方式不同
Application.java需要继承SpringBootServletInitializer,而jar包不需要。
下面是war继承的方式:
1
2
3
4
5
6
7
8
9
10
11
12
|
@SpringBootApplication @RestController public class Application extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(Application. class ,args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application. class ); } } |
3、spring boot内置tomcat
springboot内置tomcat容器,默认tomcat8的版本,war包部署时,需要在pom文件中有关跟tomcat有关系的jar包scope都设置成provided。
去掉spring boot内置的tomcat代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > < exclusions > < exclusion > < artifactId >log4j-over-slf4j</ artifactId > < groupId >org.slf4j</ groupId > </ exclusion > < exclusion > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-tomcat</ artifactId > </ exclusion > </ exclusions > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-tomcat</ artifactId > < scope >provided</ scope > </ dependency > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/laozhuxiao/article/details/73232629?locationNum=15&fps=1