最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot項目打包和運行的操作方法

 更新時間:2025年05月14日 14:16:05   作者:梅成林俊杰  
Spring Boot 應(yīng)用內(nèi)嵌了 Web 服務(wù)器,所以基于 Spring Boot 開發(fā)的 web應(yīng)用也可以獨立運行,無須部署到其他 Web服務(wù)器中,下面以打包demo_test1項目為例,將 Spring Boot 項目打包為可執(zhí)行的 JAR 包并運行,感興趣的朋友一起看看吧

一、打包為JAR包并運行

        Spring Boot 應(yīng)用內(nèi)嵌了 Web 服務(wù)器,所以基于 Spring Boot 開發(fā)的 web應(yīng)用也可以獨立運行,無須部署到其他 Web服務(wù)器中。下面以打包demo_test1項目為例,將 Spring Boot 項目打包為可執(zhí)行的 JAR 包并運行,具體操作如下。

1.打包為可執(zhí)行的 JAR 包

(1)添加Maven打包插件

        SpringBoot程序是基于 Maven 創(chuàng)建的,在對SpringBoot 項目進(jìn)行打包前,需要在項目pom.xml文件中加入 Maven 打包插件,Spring Boot 為項目打包提供了整合后的 Maven 打包插件 spring-boot-maven-plugin,可以直接使用,具體代碼如下。

<build>
    <plugins>
        <!--Maven打包插件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
        </plugin>
    </plugins>
</build>

(2)使用IDEA進(jìn)行打包

        在Maven中提供了package 打包指令,IDEA 中也提供了非常便捷的項目打包支持。在此選擇在IDEA中對項目進(jìn)行打包。在IDEA中單擊右側(cè)的“Maven”工具欄,會彈出 Maven 的操作界面,如圖所示。

        Lifecycle(生命周期)下展示了 Maven 項目構(gòu)建生命周期中常用的命令,選中對應(yīng)的命令雙擊后可以快速執(zhí)行該Maven 命令。其中,clean 命令可以清除所有在構(gòu)建過程中生成的文件,test 命令可以使用合適的單元測試框架來測試編譯的源代碼,package 命令可以完成項目編譯、單元測試、打包功能。

        為了確保打包后的項目為最新編譯的代碼,并且不包含測試階段的代碼,可以在打創(chuàng)前先執(zhí)行 clean 命令,在跳過測試階段的模塊后進(jìn)行打包。首先在 Maven 操作界面中雙擊“clean”執(zhí)行清除 target 操作,然后單擊界面上方的

圖標(biāo)設(shè)置打包時跳過測試階段的模塊,最后雙擊“package”執(zhí)行打包操作。執(zhí)行打包操作后,會在控制臺中輸出打包的結(jié)果,如果打包成功會在項目的target 文件夾下創(chuàng)建項目對應(yīng)的可執(zhí)行JAR包,如圖所示。

2.運行 JAR 包

        一個可執(zhí)行的 JAR包可以由 Java虛擬機(Java Virtual Machine,JVM)直接執(zhí)行而無須事先提取文件或者設(shè)置類路徑。對此可以直接使用Java命令運行可執(zhí)行的JAR包,運行JAR 包的命令的語法格式如下。

java -jar JAR包名稱

JAR包名稱為包含 JAR后綴的完整名稱。

        運行JAR包時可以選擇在IDEA中或者在cmd窗口中執(zhí)行,這里選擇在cmd窗口中執(zhí)行。在本地打開項目的target 文件夾,如圖所示。

        在地址欄中輸人“cmd”后按下“Enter”鍵,在當(dāng)前文件夾路徑下打開 cmd窗口,并在彈出的 cmd 窗口中使用 Java 命令運行 chapter01-0.0.1-SNAPSHOT.jar,如圖所示。

        可以看出,Spring Boot項目打成的JAR 包已經(jīng)成功運行,并顯示了默認(rèn)的端口號8080。需要注意的是,由于執(zhí)行Java命令需要計算機中安裝了Java的JDK環(huán)境,如果沒有安裝的話,執(zhí)行后會報錯。
        JAR 包運行后,可以對項目進(jìn)行訪問,以測試打包后的效果,在瀏覽器中訪問 http://localhost:8080,如圖所示。

二、打包為WAR包并運行

        雖然通過 Spring Boot內(nèi)嵌的Tomcat 可以將項目打成JAR包后直接運行,但每個JAR包中都會包含獨立的 web 容器,對服務(wù)器的使用消耗會比較大。當(dāng)想要在一個 Web容器中運行多個項目時,可以把每個項目打包成一個WAR包,然后部署到Web容器中運行下面以打包demo_test1項目為例,將Spring Boot項目打包為WAR 包并運行,具體操作如下。

1.打包為可執(zhí)行的 WAR 包

(1)聲明打包方式為war

        默認(rèn)情況下創(chuàng)建的 Spring Boot 項目打包方式為jar,要將項目打包為WAR包,需要在項目的pom.xml文件中聲明當(dāng)前項目的打包方式為war。打開demo_test1項目的 pom.xml文件,使用<packaging>標(biāo)簽聲明項目打包方式為 war,如圖。

(2)排除內(nèi)置 Tomcat

        Spring Boot 為項目提供了內(nèi)嵌的 Tomcat 服務(wù)器,使用外部的 Tomcat 時,需要在 pom.xml文件中排除內(nèi)置的Tomcat,具體代碼如下。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

        在上述代碼中,在spring-boot-starter-web的依賴中使用<exclusion>標(biāo)簽聲明排除該啟
動器中的 Tomcat。

(3)添加Tomcat 依賴

        排除內(nèi)置的Tomcat后,需要在 pom.xml文件中手動添加 Tomcat的依賴,以便在后續(xù)開發(fā)中使用對應(yīng)的 API,具體代碼如下。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <!--僅在編譯和測試階段使用,不會被打包到war包中-->
    <scope>provided</scope>
</dependency>

        在上述代碼中添加了 Tomcat 的依賴,由于對應(yīng) Tomcat 的依賴只需在編譯和測試階段使用,所以使用<scope>標(biāo)簽將該依賴的作用范圍指定在編譯和測試階段,避免打包時將對應(yīng)的依賴打包到 WAR 包中。

(4)添加插件

在項目的 pom.xml 文件中定義打包插件,以及項目打包后包的名稱具體代碼如下。

<build>
    <finalName>demo_test1_war</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
        </plugin>
    </plugins>
</build>

        在上述代碼中,使用<finalName>標(biāo)簽用于指定項目打包后的名稱;<plugin>標(biāo)簽用于指定打包插件。

(5)修改 Spring Boot啟動類

        Spring Boot啟動項目的方式有很多種,使用外置 Tomcat時,默認(rèn)啟動類需要繼承 SpringBootServletInitializer 類,并重寫configure()方法。SpringBooServletInitializer 執(zhí)行時,會通過重寫的 confgure()方法中的 SpringApplicationBuilder 實例構(gòu)建并封裝 SpringApplication 對象,并最終調(diào)用SpringApplicationrun()方法進(jìn)行項目的啟動。修改后的 Spring Boot 啟動類如下面代碼所示。

package com.merlin.demo_test1;
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.servlet.support.SpringBootServletInitializer;
@ServletComponentScan // 開啟基于注解方式的Servlet組件掃描支持
@SpringBootApplication
public class DemoTest1Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoTest1Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(DemoTest1Application.class, args);
    }
}

        在上述代碼中,啟動類 DemoTest1Application繼承SpringBootServletInitializer 類并重寫configure()方法,在confgure()方法中,sources(DemoTest1Application.class)方法的參數(shù)必須是項目主程序的啟動類。需要說明的是,為Spring Boot提供啟動的Servlet 初始化器 SpringBootServletInitializer 時,典型的做法就是讓主程序啟動類繼承 SpringBootServletInitializer 類并實現(xiàn) confgure()方法;除此之外,還可以在項目中單獨提供一個繼承 SpringBootServletInitializer 的子類,并實現(xiàn) confgure()方法。
        至此,將項目打包為WAR包的準(zhǔn)備工作已經(jīng)完成,下面參照之前使用Maven工具欄中的命令打包項目的過程,將項目進(jìn)行打包,打包后的結(jié)果如圖所示。

        從上圖可以看出,控制臺輸出“BUILD SUCCESS”等信息,并且在項目的target 文件夾下創(chuàng)建了項目名稱為demo_test1_war的WAR包,說明成功將項目打包為可執(zhí)行 WAR 包。

錯誤信息:

解決方法:在src/main/webapp/WEB-INF/目錄下創(chuàng)建一個簡單的web.xml文件,內(nèi)容可以是最小化的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

然后clean后再package打包一次即可。

2.運行 WAR 包

        將打包好的 WAR包復(fù)制到本地Tomcat安裝目錄下的webapps文件夾中,在cmd窗口中執(zhí)行 Tomcat 安裝目錄下 bin 目錄中的 startup.bat 命令啟動 Tomcat。Tomcat 啟動后,執(zhí)行效果如圖所示。

        從上圖可以看出,Tomcat啟動成功。Tomcat啟動時會自動解壓Tomcat安裝目錄下的 webapps 文件夾中的 WAR 包,并部署在Tomcat中,此時可以對項目進(jìn)行訪問。需要說明的是,對這種使用外部Tomcat 部署的項目進(jìn)行訪問時,必須加上項目名稱,即打包成WAR 包后的項目全名,例如訪問demo_test1_war項目映射路徑為根目錄,其對應(yīng)的請求地址為“http://http://localhost:8080/demo_test1_war/”,在瀏覽器中的訪問效果如下圖所示。

        從上圖可以得出,將打包的 WAR 包部署到外部Tomcat后,可以正常對項目的資源進(jìn)行訪問。
需要注意的是,Spring Boot 2.7.6默認(rèn)內(nèi)嵌 Tomcat 的版本為9.0.69,將指定版本的 Spring Boot 項目以 WAR 包形式部署到外部Tomcat 中時,應(yīng)盡量使用與 Spring Boot 項目匹配的Tomcat 版本進(jìn)行項目部署,否則在部署過程中可能出現(xiàn)異常。

到此這篇關(guān)于Spring Boot項目打包和運行的文章就介紹到這了,更多相關(guān)Spring Boot打包和運行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java分批將List數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的解決過程

    Java分批將List數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的解決過程

    這篇文章主要給大家介紹了關(guān)于Java分批將List數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫的解決過程,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-08-08
  • Java中ArrayList和Vector的區(qū)別

    Java中ArrayList和Vector的區(qū)別

    本文主要介紹了Java中ArrayList和Vector的區(qū)別,包括線程安全性、性能、同步機制、擴容機制、遍歷方式等,具有一定的參考價值,感興趣的可以了解一下
    2024-11-11
  • 在SpringBoot項目中使用JetCache緩存的詳細(xì)教程

    在SpringBoot項目中使用JetCache緩存的詳細(xì)教程

    Spring Boot是一個非常流行的Java開發(fā)框架,JetCache是一個基于注解的高性能緩存框架,本文將介紹如何在Spring Boot項目中使用JetCache緩存,并提供一個詳細(xì)案例來說明如何配置和使用JetCache,需要的朋友可以參考下
    2024-06-06
  • 一文詳解SpringBoot如何優(yōu)雅地實現(xiàn)異步調(diào)用

    一文詳解SpringBoot如何優(yōu)雅地實現(xiàn)異步調(diào)用

    SpringBoot想必大家都用過,但是大家平時使用發(fā)布的接口大都是同步的,那么你知道如何優(yōu)雅的實現(xiàn)異步呢?這篇文章就來和大家詳細(xì)聊聊
    2023-03-03
  • Spring事務(wù)注解@Transactional失效的八種場景分析

    Spring事務(wù)注解@Transactional失效的八種場景分析

    最近在開發(fā)采用Spring框架的項目中,使用了@Transactional注解,但發(fā)現(xiàn)事務(wù)注解失效了,所以這篇文章主要給大家介紹了關(guān)于Spring事務(wù)注解@Transactional失效的八種場景,需要的朋友可以參考下
    2021-05-05
  • Java?ArrayList實現(xiàn)班級信息管理系統(tǒng)

    Java?ArrayList實現(xiàn)班級信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java?ArrayList實現(xiàn)班級信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Spring Gateway基本使用示例小結(jié)

    Spring Gateway基本使用示例小結(jié)

    Springcloud Gateway使用了Webflux中的reactor-netty響應(yīng)式編程組件,底層使用了Netty通訊框架,具體一些特征,本文結(jié)合實例代碼對Spring Gateway使用給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2023-11-11
  • Java中使用Lambda表達(dá)式和函數(shù)編程示例

    Java中使用Lambda表達(dá)式和函數(shù)編程示例

    這篇文章介紹了Java中使用Lambda表達(dá)式和函數(shù)編程示例,該文章會演示多個示列,分別是變量聲明上下文中的lambda、return語句上下文中的lambda、賦值上下文中的lambda、lambda在數(shù)組初始值設(shè)定項上下文中的用法等等,需要的朋友可以參考一下
    2021-10-10
  • Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步

    Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步

    這篇文章主要介紹了Java多線程編程實戰(zhàn)之模擬大量數(shù)據(jù)同步,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 使用Spring Framework 時常犯的十大錯誤(小結(jié))

    使用Spring Framework 時常犯的十大錯誤(小結(jié))

    這篇文章主要介紹了使用Spring Framework 時常犯的十大錯誤(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

图片| 阿勒泰市| 元江| 浙江省| 司法| 竹山县| 贵定县| 克拉玛依市| 上思县| 宜城市| 兖州市| 甘泉县| 革吉县| 巴青县| 锡林浩特市| 延吉市| 唐山市| 当涂县| 九寨沟县| 高要市| 肃宁县| 土默特右旗| 开封县| 龙陵县| 丰县| 鹤岗市| 湘潭市| 兴城市| 谢通门县| 湖北省| 芦溪县| 泸西县| 五台县| 东兰县| 萝北县| 兴化市| 潮州市| 陕西省| 出国| 怀集县| 黄大仙区|