欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年04月18日 11:47:30   作者:hansonwang99  
這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用Docker化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

概述

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

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

pom.xml中加依賴(lài):

<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)類(lèi)中添加一個(gè)簡(jiǎn)單的restful接口就行了,為了后續(xù)瀏覽器能驗(yàn)證一下,訪(fǎng)問(wèn)/hello接口,能向?yàn)g覽器返回一個(gè) Hello Docker!的問(wèn)好!

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

 @RequestMapping("/hello")
 public String hello(){
  return "Hello! Docker!”;
 }
}

編寫(xiě)Dockerfile

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

FROM maven:3.3.3

ADD pom.xml /tmp/build/

RUN cd /tmp/build && mvn -q dependency:resolve

ADD 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/build

VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar”]

進(jìn)入Docker的世界

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

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

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

總結(jié)

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

相關(guān)文章

  • Java Set接口及常用實(shí)現(xiàn)類(lèi)總結(jié)

    Java Set接口及常用實(shí)現(xiàn)類(lèi)總結(jié)

    Collection的另一個(gè)子接口就是Set,他并沒(méi)有我們List常用,并且自身也沒(méi)有一些額外的方法,全是繼承自Collection中的,因此我們還是簡(jiǎn)單總結(jié)一下,包括他的常用實(shí)現(xiàn)類(lèi)HashSet、LinkedHashSet、TreeSet的總結(jié)
    2023-01-01
  • 全面解析SpringBoot文件上傳功能

    全面解析SpringBoot文件上傳功能

    這篇文章主要為大家全面解析SpringBoot文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java 使用maven實(shí)現(xiàn)Jsoup簡(jiǎn)單爬蟲(chóng)案例詳解

    Java 使用maven實(shí)現(xiàn)Jsoup簡(jiǎn)單爬蟲(chóng)案例詳解

    這篇文章主要介紹了Java 使用maven實(shí)現(xiàn)Jsoup簡(jiǎn)單爬蟲(chóng)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java Socket 編程詳解

    Java Socket 編程詳解

    Java Socket 編程是指使用 Java 語(yǔ)言進(jìn)行網(wǎng)絡(luò)通信的過(guò)程,包括建立連接、傳輸數(shù)據(jù)和關(guān)閉連接等操作,本文將詳細(xì)介紹Java Socket編程,需要的朋友可以參考下
    2023-05-05
  • Mybatis與Ibatis的區(qū)別

    Mybatis與Ibatis的區(qū)別

    這篇文章主要介紹了Mybatis與Ibatis的區(qū)別,需要的朋友可以參考下
    2016-05-05
  • java多線(xiàn)程文件下載器的實(shí)現(xiàn)

    java多線(xiàn)程文件下載器的實(shí)現(xiàn)

    本文主要介紹了java多線(xiàn)程文件下載器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Java中調(diào)用Python的實(shí)現(xiàn)示例

    Java中調(diào)用Python的實(shí)現(xiàn)示例

    本文主要介紹了Java中調(diào)用Python的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java中volatile關(guān)鍵字的作用詳解

    java中volatile關(guān)鍵字的作用詳解

    這篇文章主要介紹了java中volatile關(guān)鍵字的作用詳解,volatile可以保證,若一個(gè)線(xiàn)程改變了某塊內(nèi)存的值,其他線(xiàn)程是可見(jiàn)的,以至于其他線(xiàn)程能及時(shí)更新這塊內(nèi)存,需要的朋友可以參考下
    2023-09-09
  • JVM教程之Java代碼編譯和執(zhí)行的整個(gè)過(guò)程(二)

    JVM教程之Java代碼編譯和執(zhí)行的整個(gè)過(guò)程(二)

    這篇文章主要介紹了JVM學(xué)習(xí)筆記第二篇,關(guān)于Java代碼編譯和執(zhí)行的整個(gè)過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • SpringBoot整合Swagger接口文檔工具的流程步驟

    SpringBoot整合Swagger接口文檔工具的流程步驟

    我們?cè)陂_(kāi)發(fā)接口的時(shí)候,會(huì)將接口文檔給前端的開(kāi)發(fā)者進(jìn)行對(duì)接,我們可以通過(guò)Postman或者Yapi等接口管理工具進(jìn)行編寫(xiě)管理,實(shí)際開(kāi)發(fā)中,接口的管理確實(shí)也應(yīng)該通過(guò)專(zhuān)業(yè)的工具管理,本文,我們就來(lái)談?wù)勗趺丛赟pringBoot整合Swagger接口文檔工具
    2023-08-08

最新評(píng)論