亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot打war包的全過程記錄

 更新時間:2022年06月21日 09:04:10   作者:董澤琦  
其實一般使用springboot使用打成jar包比較省事的,但也有很多童鞋是習慣使用war包的,下面這篇文章主要給大家介紹了關于springboot打war包的相關資料,需要的朋友可以參考下

為什么要把SpringBoot打成war包

正常情況下SpringBoot項目是以jar包的形式,通過命令行:

java -jar demo.jar

來運行的,并且SpringBoot是內嵌Tomcat服務器,所以每次重新啟動都是用的新的Tomcat服務器。正因如此,也出現(xiàn)了一個問題:
上傳到項目的文件,如果是保存在項目中的,那么重啟過后文件就會丟失。比如我們上傳了一個頭像,重啟項目后,這個頭像就沒了。而如果將文件保存在本地磁盤中的話,html中標簽沒辦法獲?。ó斎?,企業(yè)項目中一般是有專門的圖片服務器的)。因此,我們才需要將SpringBoot項目打成war包,放到Tomcat中去運行。

springboot打war包

默認場景下,Springboot作為一個jar運行,但是在某些特殊場景下 需要將后臺和其他應用共用一個web容器(tomcat之類);

客戶強制要求(例如策略只給了一個端口);

其他;

可以打包成war文件進行發(fā)布。

分步指南

一般情況下,將springboot工程打包為war分為以下幾個步驟:

修改pom.xml,將打包方式設置為war 修改jar為war

移除springboot默認的tomcat配置

移除默認的spring-boot-starter-tomcat,使用provided

<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> 
<dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-tomcat</artifactId> 
        <scope>provided</scope> 
</dependency>

添加tomcat-servelt-api依賴

*注意根據(jù)自己的情況修改version

<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>

修改啟動方法

增加configure配置

@SpringBootApplication
public class ServerApplication extends SpringBootServletInitializer {
   
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(ServerApplication.class);
  }
 
  public static void main(String[] args) {
    SpringApplication.run(ServerApplication.class, args);
  }
}

添加打包插件

在pom.xml的build > plugins 中添加打包插件,可以指定打包的名稱等配置

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
          <warSourceExcludes>src/main/resources/**</warSourceExcludes> 
          <warName>yehuo</warName>
          <failOnMissingWebXml>false</failOnMissingWebXml>
      </configuration> 
</plugin>

修改項目的context-path與warName一致 修改application.properties的context-path和port等信息和實際部署的情況改為一致

server.port=server.context-path=yehuo

總結

到此這篇關于springboot打war包的文章就介紹到這了,更多相關springboot打war包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java中動態(tài)代理的實現(xiàn)

    java中動態(tài)代理的實現(xiàn)

    本篇文章主要介紹了Java中兩種動態(tài)代理的實現(xiàn):jdk動態(tài)代理;cglib動態(tài)代理。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Idea啟動多個SpringBoot項目的3種最新方案

    Idea啟動多個SpringBoot項目的3種最新方案

    SpringBoot自帶Tomcat,直接運行main方法里面的SpringApplication.run即可,并且訪問時不需要帶項目名,這篇文章主要介紹了Idea啟動多個SpringBoot項目的3種方案,需要的朋友可以參考下
    2023-02-02
  • Java中常見的對象轉換工具

    Java中常見的對象轉換工具

    對象進行對象的轉換是一個操作重復且繁瑣的工作,于是市面上就有許多的對象轉換工具來解決這個問題,下面我們就來看看幾個比較常用的工具(mapstruct,Spring BeanUtils,Apache BeanUtils)使用方式及其性能
    2023-04-04
  • java開發(fā)Dubbo注解Adaptive實現(xiàn)原理

    java開發(fā)Dubbo注解Adaptive實現(xiàn)原理

    這篇文章主要為大家介紹了java開發(fā)Dubbo注解Adaptive實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Java工具類DateUtils實例詳解

    Java工具類DateUtils實例詳解

    這篇文章主要為大家詳細介紹了Java工具類DateUtils實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • spring實現(xiàn)動態(tài)切換、添加數(shù)據(jù)源及源碼分析

    spring實現(xiàn)動態(tài)切換、添加數(shù)據(jù)源及源碼分析

    這篇文章主要給大家介紹了關于spring實現(xiàn)動態(tài)切換、添加數(shù)據(jù)源及源碼分析的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • intellij idea旗艦版解決學生無法注冊問題詳解

    intellij idea旗艦版解決學生無法注冊問題詳解

    這篇文章主要介紹了intellij idea旗艦版解決學生無法注冊問題詳解,文中通過圖文示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java集合包中的fail fast機制詳解

    Java集合包中的fail fast機制詳解

    這篇文章主要介紹了Java集合包中的fail fast機制詳解,當我們使用iterator迭代器遍歷一個集合的過程中,如果其它線程,或者它自己向這個集合新增或刪除了一個key-value,那么當前線程就會拋出ConcurrentModificationException異常,需要的朋友可以參考下
    2023-12-12
  • java文件下載設置中文名稱的實例(response.addHeader)

    java文件下載設置中文名稱的實例(response.addHeader)

    下面小編就為大家分享一篇java文件下載設置中文名稱的實例(response.addHeader),具有很好的參考價值,希望對大家有所幫助
    2017-12-12
  • jvm字符串常量池在什么內存區(qū)域問題解析

    jvm字符串常量池在什么內存區(qū)域問題解析

    這篇文章主要介紹了jvm字符串常量池在什么內存區(qū)域的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論