龙空技术网

SpringBoot 3.1 新特性,全新的容器交互能力

Java微服务 1976

前言:

现时咱们对“java交互”大致比较注意,朋友们都想要学习一些“java交互”的相关知识。那么小编在网上网罗了一些有关“java交互””的相关文章,希望朋友们能喜欢,同学们快快来学习一下吧!

本文将介绍刚发布的 Spring Boot 3.1 版本,我们将重点关注使用 Docker Compose 文件直接与 Spring Boot 应用程序交互的功能。

虽然这不是一个全新的功能,但相比之前的版本有了一些显著的改进。其中最主要的是 Spring Boot Docker Compose 模块可以自动启动和停止您的容器。此外,再也不需要在 Docker Compose 文件和 application.properties 之间进行属性复制了。

在这篇博客文章中,我将展示如何在 Spring Boot 3.1 中开始使用这一令人兴奋的新功能

快速开始

首先,让我们使用 Spring Initializr 来设置一个基本的 Spring Boot 3.1 项目。

Maven 项目3.1.0 版本Java 17依赖:

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-docker-compose</artifactId>        <optional>true</optional>    </dependency></dependencies>
spring-boot-docker-compose 介绍

spring-boot-docker-compose 的核心功能

协助管理(启动、停止) Docker Compose 服务读取 docker-compose 文件,自动配置 application.yml

自动识别compose 文件配置 application 文件

Docker Compose 启动后,spring-boot-docker-compose 会自动识别 Docker Compose 中的服务,然后自动完成对应的服务连接配置,如 Redis 服务,会自动配置 spring.redis.host 和 spring.redis.port, mysql 服务会自动配置 spring.datasource.url,spring.datasource.username 和 spring.datasource.password 等。 如果你在 application.properties 中已经进行了配置,那么 spring-boot-docker-compose 会覆盖对应的配置,确保应用连接到 Docker Compose 中的服务上。

那么端口冲突如何解决呢?回到 docker-compose.yml 文件,你不需要设置端口映射,你只需要设置暴露端口,然后使用随机端口进行映射。 不用担心随机端口的问题,spring-boot-docker-compose 会自动识别随机端口,然后自动完成对应的配置的。最后项目的 docker-compose.yml 文件如下:

version: "3"services:  mysql:    image: mysql:8.0.33    ports:      - "3306"    environment:      MYSQL_ROOT_PASSWORD: root      MYSQL_DATABASE: pigx
目前支持的类型
ElasticsearchMariaDB with JDBC and R2DBCMongoDBMySQL with JDBC and R2DBCPostgreSQL with JDBC and R2DBCRabbitMQRedisZipkin

标签: #java交互