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

SpringBoot項(xiàng)目部署到服務(wù)器的兩種方式

 更新時(shí)間:2024年10月08日 09:39:57   作者:Java架構(gòu)何哥  
目前,前后端分離的架構(gòu)已成主流,而使用SpringBoot構(gòu)建Web應(yīng)用是非常快速的,項(xiàng)目發(fā)布到服務(wù)器上的時(shí)候,只需要打成一個(gè)jar包,然后通過命令 : java -jar jar包名稱即可啟動(dòng)服務(wù)了,本文介紹了SpringBoot項(xiàng)目部署到服務(wù)器的兩種方式,需要的朋友可以參考下

前言

目前,前后端分離的架構(gòu)已成主流,而使用SpringBoot構(gòu)建Web應(yīng)用是非??焖俚?,項(xiàng)目發(fā)布到服務(wù)器上的時(shí)候,只需要打成一個(gè)jar包,然后通過命令 : java -jar jar包名稱即可啟動(dòng)服務(wù)了。

一、jar包(官方推薦)

SpringBoot項(xiàng)目默認(rèn)打包成jar包

jar包方式啟動(dòng),也就是使用SpringBoot內(nèi)置的tomcat運(yùn)行。服務(wù)器上面只要你配置了jdk1.8及以上就ok,不需要外置tomcat。

1、SpringBoot將項(xiàng)目打包成jar包

a.首先在pom.xml文件中導(dǎo)入Springboot的maven依賴

<!--將應(yīng)用打包成一個(gè)可以執(zhí)行的jar包-->
   <build>
 
        <plugins>
 
            <plugin>
 
                <groupId>org.springframework.boot</groupId>
 
                <artifactId>spring-boot-maven-plugin</artifactId>
 
            </plugin>
 
        </plugins>
 
    </build>

b.package一下

c.package完成以后,target中會(huì)生成一個(gè).jar包;

d.將jar包放到Linux服務(wù)器任意目錄,執(zhí)行下面的命令即可啟動(dòng)項(xiàng)目服務(wù)

$ nohup java -jar test.jar >temp.txt &
 
//這種方法會(huì)把日志文件輸入到你指定的文件中,沒有則會(huì)自動(dòng)創(chuàng)建。進(jìn)程會(huì)在后臺(tái)運(yùn)行。

2、Linux運(yùn)行jar包與停止命令

a、執(zhí)行jar包的命令和在windows操作系統(tǒng)上是一樣的,都是java -jar xxxx.jar。

b、后臺(tái)運(yùn)行,nohup 意思是不掛斷運(yùn)行命令,當(dāng)賬戶退出或終端關(guān)閉時(shí),程序仍然運(yùn)行

當(dāng)用 nohup 命令執(zhí)行作業(yè)時(shí),缺省情況下該作業(yè)的所有輸出被重定向到nohup.out的文件中,除非另外指定了輸出文件。

nohup java -jar shareniu.jar

c、如果想殺掉運(yùn)行中的jar程序,查看進(jìn)程命令為:

ps aux|grep getCimiss-surf.jar

將會(huì)看到此jar的進(jìn)程信息

data 5796 0.0 0.0 112656 996 pts/1 S+ 09:11 0:00 grep --color=auto getCimiss-surf.jar data 30768 6.3 0.4 35468508 576800 ? Sl 09:09 0:08 java -jar getCimiss-surf.jar

其中30768則為此jar的pid,殺掉命令為

kill -9 30768

二、war包

傳統(tǒng)的部署方式:將項(xiàng)目打成war包,放入tomcat 的webapps目錄下面,啟動(dòng)tomcat,即可訪問。

SpringBoot項(xiàng)目改造打包成war的流程

1、pom.xml配置修改

<packaging>jar</packaging>
//修改為
<packaging>war</packaging>

2、pom文件添加如些依賴

 <!--添加servlet-api的依賴,用來打war包  -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

這個(gè)依賴主要是用于在和jsp進(jìn)行整合的使用,可酌情添加

3、排除springboot內(nèi)置的tomcat干擾

 <!--最終打成war包,排除內(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>

4、改造啟動(dòng)類

如果是war包發(fā)布,需要增加SpringBootServletInitializer子類,并重寫其configure方法,或者將main函數(shù)所在的類繼承SpringBootServletInitializer子類,并重寫configure方法

當(dāng)時(shí)打包為war時(shí)上傳到tomcat服務(wù)器中訪問項(xiàng)目始終報(bào)404錯(cuò)就是忽略了這個(gè)步驟?。?!

改造之前:

@SpringBootApplication
public class MainApp {
 
    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }
}
 

改造之后:

@SpringBootApplication
public class MainApp extends SpringBootServletInitializer {
 
    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }
  
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
 
        // 注意這里要指向原先用main方法執(zhí)行的Application啟動(dòng)類
        return builder.sources(MainApp.class);
    }
}

這種改造方式也是官方比較推薦的方法

5、pom文件中不要忘了maven編譯插件

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

6、在IDEA中使用mvn clean命令清除舊的包,并使用mvn package生成新的war包

執(zhí)行完畢后,可以看到war包已經(jīng)生成了,默認(rèn)是在target目錄下,位置可以在pom文件中進(jìn)行配置:

7、使用外部Tomcat運(yùn)行該 war 文件,有兩種方式。第一種把 war 文件直接丟到 tomcat的webapps目錄,啟動(dòng)tomcat;第二種使用tomcat - conf - server.xml配置,使用target目錄中war包解壓的文件夾為項(xiàng)目地址進(jìn)行部署

<Service name="testWar">  
  <Connector port="8088"    maxHttpHeaderSize="8192"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="true" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"  URIEncoding="utf-8"/>   
  <Engine name="hnswzy" defaultHost="localhost">
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
     <Host name="localhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" reloadable="true" docBase="D:\project\springboot\war\target\war-0.0.1">
         </Context>
     </Host>
  </Engine>
</Service>

注意事項(xiàng):

將項(xiàng)目打成war包,部署到外部的tomcat中,這個(gè)時(shí)候,不能直接訪問spring boot 項(xiàng)目中配置文件配置的端口。application.yml中配置的server.port配置的是spring boot內(nèi)置的tomcat的端口號(hào), 打成war包部署在獨(dú)立的tomcat上之后, 你配置的server.port是不起作用的。一定要注意這一點(diǎn)!!

其實(shí)我們從tomcat的啟動(dòng)界面,已經(jīng)可以看出,是啟動(dòng)的哪個(gè)端口:

很明顯,日志告訴我們,我們應(yīng)該訪問8080端口。

三、jar包和war包方式對(duì)比

1.SpringBoot項(xiàng)目打包時(shí)能打成 jar 與 war包,對(duì)比兩種打包方式,jar更加簡單方便,使用 java -jar xx.jar 就可以啟動(dòng)。所以打成 jar 包的最多。

而 war包可以部署到tomcat的 webapps 中,隨Tomcat的啟動(dòng)而啟動(dòng)。具體使用哪種方式,應(yīng)視應(yīng)用場景而定。

2、打jar包時(shí)不會(huì)把src/main/webapp 下的內(nèi)容打到j(luò)ar包里 (你認(rèn)為的打到j(luò)ar包里面,路徑是不行的會(huì)報(bào)404)

     打war包時(shí)會(huì)把src/main/webapp 下的內(nèi)容打到war包里

3.打成什么文件包進(jìn)行部署與項(xiàng)目業(yè)務(wù)有關(guān),就像提供 restful API 服務(wù)的項(xiàng)目需要打包成 jar文件,用命令運(yùn)行很方便。。。而有大量css、js、html,且需要經(jīng)常改動(dòng)的項(xiàng)目,打成 war 包去運(yùn)行比較方便,因?yàn)楦膭?dòng)靜態(tài)資源可以直接覆蓋,很快看到改動(dòng)后的效果,這是 jar 包不能比的(舉個(gè)‘栗’子:項(xiàng)目打成 jar 包運(yùn)行,一段時(shí)間后,前端要對(duì)其中某幾個(gè)頁面樣式進(jìn)行改動(dòng),使其更美觀,那么改動(dòng)幾個(gè)css、html后,需要重新打成一個(gè)新的 jar 包,上傳服務(wù)器并運(yùn)行,這種改動(dòng)頻繁時(shí)很不友好,文件大時(shí)上傳服務(wù)器很耗時(shí),那么 war包就能免去這種煩惱,只要覆蓋幾個(gè)css與html即可)

以上就是SpringBoot項(xiàng)目部署到服務(wù)器的兩種方式的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot項(xiàng)目部署到服務(wù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于java中集合的概念(詳解)

    基于java中集合的概念(詳解)

    下面小編就為大家?guī)硪黄趈ava中集合的概念(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Zookeeper和Eureka哪個(gè)更好?

    Zookeeper和Eureka哪個(gè)更好?

    今天小編就為大家分享一篇關(guān)于Zookeeper和Eureka哪個(gè)更好?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Java JSQLParser解析SQL的使用指南

    Java JSQLParser解析SQL的使用指南

    JSQLParser是一個(gè)Java語言的SQL語句解析工具,可以將SQL語句解析成為Java類的層次結(jié)構(gòu),還支持改寫SQL,下面我們就來看看它的具體使用吧
    2025-05-05
  • 深入淺析SSH的三個(gè)組件ssh、sftp、scp

    深入淺析SSH的三個(gè)組件ssh、sftp、scp

    SSH 包含3個(gè)組件,文中給大家詳細(xì)提到。這篇文章主要介紹了SSH的三個(gè)組件ssh、sftp、scp ,需要的朋友可以參考下
    2018-10-10
  • Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解

    Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解

    這篇文章主要介紹了Java Spring-IOC容器與Bean管理之基于注解的方式案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 基于SpringBoot框架實(shí)現(xiàn)文件上傳下載分享功能

    基于SpringBoot框架實(shí)現(xiàn)文件上傳下載分享功能

    在當(dāng)今的Web應(yīng)用開發(fā)中,文件上傳與下載功能是極為常見且重要的需求,無論是用戶上傳頭像、分享文檔,還是系統(tǒng)生成報(bào)告供用戶下載,都離不開這一功能模塊,SpringBoot作為一款流行的Java開發(fā)框架,為我們提供了簡潔高效的方式來實(shí)現(xiàn)文件上傳與下載,需要的朋友可以參考下
    2025-06-06
  • 詳解Spring Kafka中關(guān)于Kafka的配置參數(shù)

    詳解Spring Kafka中關(guān)于Kafka的配置參數(shù)

    這篇文章主要介紹了詳解Spring Kafka中關(guān)于Kafka的配置參數(shù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Springboot分頁插件使用實(shí)例解析

    Springboot分頁插件使用實(shí)例解析

    這篇文章主要介紹了Springboot分頁插件使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Nacos配置中心集群原理及源碼分析

    Nacos配置中心集群原理及源碼分析

    這篇文章主要為大家介紹了Nacos配置中心集群原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn)

    mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn)

    本文主要介紹了mybatis-plus 擴(kuò)展批量新增的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評(píng)論

呼和浩特市| 彰化市| 墨竹工卡县| 华亭县| 股票| 桦南县| 平邑县| 高清| 鹿泉市| 孝义市| 昌黎县| 怀来县| 衡东县| 明光市| 阳城县| 同仁县| 志丹县| 富阳市| 专栏| 桐梓县| 上思县| 宣恩县| 金坛市| 台中县| 错那县| 鄂托克前旗| 天台县| 鄂尔多斯市| 昌平区| 茂名市| 旅游| 荥阳市| 涟水县| 聂拉木县| 会昌县| 洛川县| 苍南县| 定西市| 和龙市| 白水县| 怀仁县|