国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

Spring Boot應(yīng)用Docker化的步驟詳解

2024-07-14 08:40:20
字體:
供稿:網(wǎng)友

概述

Spring Boot簡(jiǎn)化了Spring應(yīng)用的開發(fā)過程,遵循約定優(yōu)先配置的原則提供了各類開箱即用(out-of-the-box)的框架配置。另一方面,Spring Boot還具備將代碼直接構(gòu)建為可執(zhí)行jar包的能力,這個(gè)jar包是一個(gè)可以獨(dú)立運(yùn)行的部署單元。基于以上特性,現(xiàn)在普遍認(rèn)為Spring Boot提供了一種快速構(gòu)造微服務(wù)(Micro-Service)的能力。

當(dāng)下web服務(wù)端開發(fā)中最火的名詞中絕對(duì)有微服務(wù)的一席之地,其也成為當(dāng)下互聯(lián)網(wǎng)后端服務(wù)架構(gòu)演進(jìn)歷程中最閃亮的技術(shù)之一。微服務(wù)的基本思想在于考慮圍繞著業(yè)務(wù)領(lǐng)域組件來創(chuàng)建應(yīng)用,這些應(yīng)用可獨(dú)立地進(jìn)行開發(fā)、管理和加速。在分散的組件中使用微服務(wù)云架構(gòu)和平臺(tái),使部署、管理和服務(wù)功能交付變得更加簡(jiǎn)單。既然服務(wù)被分割和微小化了,我們很容易想到如果將其和docker結(jié)合,讓docker承載著一個(gè)個(gè)的微服務(wù)運(yùn)行,如此一來將會(huì)讓服務(wù)間耦合度降低,部署簡(jiǎn)潔,同時(shí)系統(tǒng)的架構(gòu)也更加清晰,便于長(zhǎng)期演進(jìn),基于此想法有了這篇文章的入門實(shí)踐!

創(chuàng)建基于maven的spring bt項(xiàng)目

pom.xml中加依賴:

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version></parent><dependencies>  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-test</artifactId>  <scope>test</scope> </dependency></dependencies>

我們只需要在啟動(dòng)類中添加一個(gè)簡(jiǎn)單的restful接口就行了,為了后續(xù)瀏覽器能驗(yàn)證一下,訪問/hello接口,能向?yàn)g覽器返回一個(gè) Hello Docker!的問好!

@RestControllerpublic class DockerDemoSpringApplication { public static void main(String[] args) {  SpringApplication.run(DockerDemoSpringApplication.class, args); } @RequestMapping("/hello") public String hello(){  return "Hello! Docker!”; }}

編寫Dockerfile

我們?cè)赟pring Bt項(xiàng)目的根目錄下建立Dockerfile,用起來完成Docker鏡像構(gòu)建的編排:

FROM maven:3.3.3ADD pom.xml /tmp/build/RUN cd /tmp/build && mvn -q dependency:resolveADD src /tmp/build/src  #構(gòu)建應(yīng)用RUN cd /tmp/build && mvn -q -DskipTests=true package /  #拷貝編譯結(jié)果到指定目錄  && mv target/*.jar /app.jar /  #清理編譯痕跡  && cd / && rm -rf /tmp/buildVOLUME /tmpEXPOSE 8080ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar”]

進(jìn)入Docker的世界

  • 0x01. 在Spring項(xiàng)目根目錄下根據(jù)Dockerfile來生成docker鏡像
    docker build -t springindocker .
  • 0x02. 從剛創(chuàng)建的鏡像來啟動(dòng)容器
    docker run -d -p 8080:8080 springindocker
  • 0x03. 打開瀏覽器,或者使用 curl 訪問http://127.0.0.1:8080就可以看到web服務(wù)器里返回的Hello Docker!!!問好的字符了

至此就說明你成功將一個(gè)基于 Spring Boot 的應(yīng)用 Docker 化了。

本文雖然只是以一個(gè)Demo,但一個(gè)大型的web項(xiàng)目無非也就是由諸多這種Rest服務(wù),外加各種基礎(chǔ)設(shè)施、數(shù)據(jù)庫、通信、中間件以及調(diào)度來構(gòu)成,每個(gè)子元素的開發(fā)也依然遵循這里的基本流程。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灌云县| 南开区| 邓州市| 剑河县| 牟定县| 吉水县| 山东省| 大丰市| 乌兰浩特市| 满洲里市| 申扎县| 慈溪市| 成安县| 锡林郭勒盟| 鹤庆县| 金沙县| 专栏| 明光市| 岚皋县| 八宿县| 张家界市| 施秉县| 潢川县| 巴彦县| 华池县| 新密市| 禹州市| 清丰县| 水城县| 孝昌县| 涞源县| 福泉市| 唐山市| 青冈县| 资源县| 界首市| 思茅市| 新野县| 汉川市| 治县。| 义乌市|