web開發(fā) 之 Spring打包部署

目錄

引言

剛開始使用IntelliJ Idea開發(fā)Spring時(shí), 我們就配置了Tomcat(詳見web開發(fā) 之 Spring + IntelliJ Idea)

之后開發(fā)時(shí)運(yùn)行的工程, 都使用了配置的web容器, 那么如何將工程獨(dú)立打包并部署到生產(chǎn)環(huán)境中呢?

下面我們還是通過一個(gè)實(shí)例來了解打包部署的全過程

創(chuàng)建SpringPackage工程

New Project -> Spring Initializr -> 設(shè)置Name為SpringPackage, Type為Maven Project

spring-package_01.png

-> 接下來要注意的是, 在依賴配置里, 勾選Web, 如下圖

spring-package_02.png

-> 然后, 設(shè)置Project Name為SpringPackage保存

-> 最后, 選擇運(yùn)行SpringPackageApplication即可

添加請(qǐng)求接口

創(chuàng)建完的項(xiàng)目還是一個(gè)空的項(xiàng)目, 我們來添加一個(gè)接口("/package"), 這個(gè)接口只返回String信息以確認(rèn)連接成功, 其中Method=GET

package com.example;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PackageController {

    @RequestMapping(value = "/package", method = RequestMethod.GET)
    @ResponseBody
    public String packageController() {
        return "package";
    }

}

這個(gè)接口的代碼很簡(jiǎn)單, 在此也不做過多解釋了

使用Postman測(cè)試該接口如下

spring-package_03.png

安裝maven

構(gòu)建項(xiàng)目和安裝依賴我們使用的是maven, 打包則需要在系統(tǒng)中安裝maven

brew install maven
mvn -v

安裝成功后, 打印結(jié)果如下

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"

jar打包部署

使用maven打包Spring工程, 默認(rèn)的格式是jar

cd SpringPackage && mvn package

成功后, 會(huì)在target目錄下生成demo-0.0.1-SNAPSHOT.jar包

jar包的部署比較簡(jiǎn)單, 直接運(yùn)行即可

java -jar target/demo-0.0.1-SNAPSHOT.jar

war打包部署

如果想將工程打包成war后部署到web容器(如Tomcat), 需要對(duì)工程做一些簡(jiǎn)單的修改

首先, 將pm.xml中的

<packaging>jar</packaging>

修改成

<packaging>war</packaging>

并且, 在pom.xml中的"</dependencies>"節(jié)點(diǎn)下添加

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

最后, 修改SpringPackageApplication.java文件如下

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class SpringPackageApplication extends SpringBootServletInitializer {

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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringPackageApplication.class);
    }

}

接著就可以使用maven將Spring工程打包成war

mvn package

成功后, 會(huì)在target目錄下生成demo-0.0.1-SNAPSHOT.war包

war包的部署也很簡(jiǎn)單, 直接將war包拷貝至Tomcat的webapps目錄后, 啟動(dòng)或重啟Tomcat即可

cp target/demo-0.0.1-SNAPSHOT.war ~/Workspace/web-sdk/apache-tomcat-8.5.4/webapps
cd ~/Workspace/web-sdk/apache-tomcat-8.5.4
./bin/startup.sh

使用Postman測(cè)試該接口如下

spring-package_04.png

注意這里的URL地址是: localhost:8080/demo-0.0.1-SNAPSHOT/package

小結(jié)

了解完Spring項(xiàng)目的打包部署, 意識(shí)著一個(gè)iOS&Android終端開發(fā)工程師的Spring ABC之旅就告一段落了

如果有什么建議和指正, 歡迎留言和聯(lián)系

附錄

Spring ABC系列的文章有

web開發(fā) 之 Spring + IntelliJ Idea

web開發(fā) 之 Spring + MongoDB

web開發(fā) 之 Spring常用第三方庫(FastJSON LogBack)

web開發(fā) 之 Spring打包部署

更多文章, 請(qǐng)支持我的個(gè)人博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末微驶,一起剝皮案震驚了整個(gè)濱河市墓拜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖智蝠,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堕油,死亡現(xiàn)場(chǎng)離奇詭異螟蒸,居然都是意外死亡政溃,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門留储,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翼抠,“玉大人,你說我怎么就攤上這事欲鹏』茫” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵赔嚎,是天一觀的道長膘盖。 經(jīng)常有香客問我,道長尤误,這世上最難降的妖魔是什么侠畔? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮损晤,結(jié)果婚禮上软棺,老公的妹妹穿的比我還像新娘。我一直安慰自己尤勋,他們只是感情好喘落,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著最冰,像睡著了一般瘦棋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上暖哨,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天赌朋,我揣著相機(jī)與錄音,去河邊找鬼。 笑死沛慢,一個(gè)胖子當(dāng)著我的面吹牛赡若,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播团甲,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼逾冬,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伐庭?” 一聲冷哼從身側(cè)響起粉渠,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤分冈,失蹤者是張志新(化名)和其女友劉穎圾另,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雕沉,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡集乔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坡椒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扰路。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖倔叼,靈堂內(nèi)的尸體忽然破棺而出汗唱,到底是詐尸還是另有隱情,我是刑警寧澤丈攒,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布哩罪,位于F島的核電站,受9級(jí)特大地震影響巡验,放射性物質(zhì)發(fā)生泄漏际插。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一显设、第九天 我趴在偏房一處隱蔽的房頂上張望框弛。 院中可真熱鬧,春花似錦捕捂、人聲如沸瑟枫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慷妙。三九已至,卻和暖如春幽七,著一層夾襖步出監(jiān)牢的瞬間景殷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猿挚,地道東北人咐旧。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像绩蜻,于是被迫代替她去往敵國和親铣墨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容