1. 程式人生 > >Springboot打成war包並在tomcat中執行的部署方法

Springboot打成war包並在tomcat中執行的部署方法

把spring-boot專案按照平常的web專案一樣釋出到tomcat容器下

一、修改打包形式

在pom.xml裡設定 <packaging>war</packaging>

二、移除嵌入式tomcat外掛

在pom.xml裡找到spring-boot-starter-web依賴節點,在其中新增如下程式碼,

?

1

2

3

4

5

6

7

8

9

10

11

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<!-- 移除嵌入式tomcat外掛 -->

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

三、新增servlet-api的依賴

下面兩種方式都可以,任選其一

?

1

2

3

4

5

6

7

8

9

10

11

12

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1

.0</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.apache.tomcat</groupId>

<artifactId>tomcat-servlet-api</artifactId>

<version>8.0.36</version>

<scope>provided</scope>

</dependency>

四、修改啟動類,並重寫初始化方法

我們平常用main方法啟動的方式,都有一個App的啟動類,程式碼如下:

?

1

2

3

4

5

6

@SpringBootApplication

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

我們需要類似於web.xml的配置方式來啟動spring上下文了,在Application類的同級新增一個SpringBootStartApplication類,其程式碼如下:

?

1

2

3

4

5

6

7

8

9

10

/**

* 修改啟動類,繼承 SpringBootServletInitializer 並重寫 configure 方法

*/

public class SpringBootStartApplication extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

// 注意這裡要指向原先用main方法執行的Application啟動類

return builder.sources(Application.class);

}

}

五、打包部署

在專案根目錄下(即包含pom.xml的目錄),在命令列裡輸入: 
mvn clean package即可, 等待打包完成,出現[INFO] BUILD SUCCESS即為打包成功。 
然後把target目錄下的war包放到tomcat的webapps目錄下,啟動tomcat,即可自動解壓部署。 
最後在瀏覽器中輸入

釋出成功。

PS:下面看下SpringBoot war包tomcat執行啟動報錯(Cannot determine embedded database driver class for database type NONE)的解決方法

我們的專案一直以來都是jar包直接執行的,昨天同事說要在tomcat執行,我就幫他倒騰了半天。在文中給大家介紹了,需要的朋友可以點選檢視。

然後順利打包部署進本地tomcat啟動就報標題錯誤,網上搜過都說啟動類中加入註解:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class)

本人親測無效。

解決方案:

啟動類加入註解:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}),親測有效。

您可能感興趣的文章:

原文連結:http://blog.csdn.net/paranoia_zk/article/details/78128792