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

SpringBoot3 整合Docker-Compose的實現(xiàn)步驟

 更新時間:2025年08月07日 10:25:46   作者:秋錦  
本文主要介紹了SpringBoot3 整合Docker-Compose的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

它有什么優(yōu)勢

同樣的約定大于配置,使用docker-compose時寫的配置可以被SpringBoot3自動發(fā)現(xiàn),在使用它時我們可以減少更多的書寫配置,一切由它自動完成,比如常見的mysql,redis等都可以省略配置了,后面有具體的例子

添加依賴

 <!--  springboot3 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 <!--  docker-compose-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-docker-compose</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

 <!--  mysql-->
         <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

 <!--  redis-->
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

compose推薦配置

注意skip 需要在start_only下才能正常執(zhí)行,不然在start_and_stop模式下應用啟動->啟動容器->關閉容器->關機 ,skip等于無效參數(shù)

spring:
  docker:
    compose:
      profiles:
        active: dev # 指定當前運行環(huán)境
      enabled: true # 開啟compose
      start:
        skip: if_running  # 如果容器在運行就不再去再啟動了
      lifecycle-management: start_only # 這個參數(shù)不會在停機后關閉容器
services:
  mysql:
    image: 'mysql:latest'
    restart: always
    environment:
      - MYSQL_DATABASE=root
      - MYSQL_ROOT_PASSWORD=123456
    ports:
      - '3306:3306'
    profiles:
      - dev
    labels:
      # 特殊參數(shù)特殊處理
      org.springframework.boot.jdbc.parameters: useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf-8&useSSL=false
  redis:
    image: 'redis:latest'
    restart: always
    environment:
      - 'REDIS_PASSWORD=redis'
    ports:
      - '6379:6379'
    profiles:
      - dev

docker-compose生命管理器

org.springframework.boot.docker.compose.lifecycle.DockerComposeLifecycleManager 負責整合后的compose生命管理,包括容器創(chuàng)建,啟動,停止,以及最后的配置自動發(fā)現(xiàn),其中我們需要的配置也在讀取docker-compose.yml后存了下來,

然后在容器啟動完成后隨之發(fā)布事件DockerComposeServicesReadyEvent,在被DockerComposeServiceConnectionsApplicationListener監(jiān)聽到后開始注冊配置

    private void registerConnectionDetails(BeanDefinitionRegistry registry, List<RunningService> runningServices) {
         //  runningServices是前面docker-compose中寫的service
        for (RunningService runningService : runningServices) {
            DockerComposeConnectionSource source = new DockerComposeConnectionSource(runningService);
            // getConnectionDetails獲取`spring.factories`里面注冊的`ConnectionDetailsFactory`具體實現(xiàn)
            this.factories.getConnectionDetails(source, false).forEach((connectionDetailsType, connectionDetails) -> {
                register(registry, runningService, connectionDetailsType, connectionDetails);
                this.factories.getConnectionDetails(connectionDetails, false)
                    .forEach((adaptedType, adaptedDetails) -> register(registry, runningService, adaptedType,
                            adaptedDetails));
            });
        }
    };
        }
    }

最后跟以前的配置自動發(fā)現(xiàn)一樣由org.springframework.boot.autoconfigure.service.connection.ConnectionDetails

這個接口負責,比如其中關于mysqldocker-compose整合的實現(xiàn)類為org.springframework.boot.docker.compose.service.connection.mysql.MySqlJdbcDockerComposeConnectionDetailsFactory

注意事項

  • skip 需要搭配 lifecycle-management使用

  • 常規(guī)的environment 參數(shù)由SpringBoot自動發(fā)現(xiàn),一些特殊參數(shù),比如mysql連接參數(shù)可以放到labels下面,格式類似于org.springframework.boot.jdbc.parameters,具體的話可以翻看源碼,一般會直接定義在ConnectionDetails實現(xiàn)類里面

到此這篇關于SpringBoot3 整合Docker-Compose的實現(xiàn)步驟的文章就介紹到這了,更多相關SpringBoot3 整合Docker-Compose內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Java Scanner如何獲取字符串和帶空格的字符串

    Java Scanner如何獲取字符串和帶空格的字符串

    這篇文章主要介紹了Java Scanner如何獲取字符串和帶空格的字符串問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Spring?Boot?內置工具類ReflectionUtils的實現(xiàn)

    Spring?Boot?內置工具類ReflectionUtils的實現(xiàn)

    ReflectionUtils是一個反射工具類,它封裝了Java反射的操作,使得我們能夠更輕松地操作和訪問類的方法、字段,本文主要介紹了Spring?Boot?內置工具類ReflectionUtils的實現(xiàn),感興趣的可以了解一下
    2023-11-11
  • 通過實例解析java String不可變性

    通過實例解析java String不可變性

    這篇文章主要介紹了通過實例解析java String不可變性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • java-jwt 使用小結

    java-jwt 使用小結

    java-jwt是用于在Java應用程序中創(chuàng)建和驗證JSON Web Tokens的庫,它由Auth0提供,功能強大且易于使用,適合處理基于 JWT 的身份驗證和授權,下面就來介紹一下如何使用,感興趣的可以了解一下
    2026-01-01
  • java批量下載將多個文件(minio中存儲)壓縮成一個zip包代碼示例

    java批量下載將多個文件(minio中存儲)壓縮成一個zip包代碼示例

    在Java應用程序中有時我們需要從多個URL地址下載文件,并將這些文件打包成一個Zip文件進行批量處理或傳輸,這篇文章主要給大家介紹了關于java批量下載將多個文件(minio中存儲)壓縮成一個zip包的相關資料,需要的朋友可以參考下
    2023-11-11
  • SpringBoot之使用Redis實現(xiàn)分布式鎖(秒殺系統(tǒng))

    SpringBoot之使用Redis實現(xiàn)分布式鎖(秒殺系統(tǒng))

    這篇文章主要介紹了SpringBoot之使用Redis實現(xiàn)分布式鎖(秒殺系統(tǒng)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 使用Java將字節(jié)數(shù)組轉成16進制形式的代碼實現(xiàn)

    使用Java將字節(jié)數(shù)組轉成16進制形式的代碼實現(xiàn)

    在很多場景下,需要進行分析字節(jié)數(shù)據(jù),但是我們存起來的字節(jié)數(shù)據(jù)一般都是二進制的,這時候就需要我們將其轉成16進制的方式方便分析,本文主要介紹如何使用Java將字節(jié)數(shù)組格式化成16進制的格式并輸出,需要的朋友可以參考下
    2024-05-05
  • SpringBoot詳細講解日志文件

    SpringBoot詳細講解日志文件

    Spring Boot默認使用SLF4J+Logback 記錄日志,并提供了默認配置,即使我們不進行任何額外配,也可以使用SLF4J+Logback進行日志輸出
    2022-06-06
  • MyBatis-Plus混合使用XML和注解過程

    MyBatis-Plus混合使用XML和注解過程

    文章介紹了MyBatis-Plus混合使用XML和注解配置的方法和最佳實踐,包括配置原則、具體配置方法、注意事項、動態(tài)SQL示例、常見問題及解決方案,同時,還詳細說明了@MapperScan與mapper-locations的區(qū)別和使用場景
    2025-12-12
  • Java實現(xiàn)Word/Excel/TXT轉PDF的方法

    Java實現(xiàn)Word/Excel/TXT轉PDF的方法

    這篇文章主要介紹了Java實現(xiàn)Word/Excel/TXT轉PDF的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01

最新評論

乌拉特前旗| 南京市| 江川县| 德令哈市| 栾川县| 清镇市| 墨脱县| 黄骅市| 宾阳县| 阿拉善左旗| 新安县| 福安市| 满洲里市| 凤山市| 合川市| 淳安县| 巩留县| 沭阳县| 华容县| 环江| 齐河县| 观塘区| 万安县| 会昌县| 兖州市| 甘肃省| 城步| 泽库县| 崇阳县| 自治县| 南投县| 永善县| 正阳县| 巢湖市| 突泉县| 抚顺市| 哈密市| 沅陵县| 阿拉善左旗| 清苑县| 邻水|