Skip to content

环境要求 ​

运行环境 ​

工具版本要求说明
JDKOpenJDK 25使用虚拟线程等新特性
Gradle9.6.0通过 Wrapper 自动管理

检查版本:

bash
java -version
./gradlew --version

安装 JDK 25 ​

macOS
bash
# 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash

# 安装 OpenJDK 25
sdk install java 25-open

# 切换到 OpenJDK 25
sdk use java 25-open

# 设为默认
sdk default java 25-open
bash
# 安装 Homebrew(如已安装可跳过)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 OpenJDK 25
brew install openjdk@25

# 配置环境变量(添加到 ~/.zshrc)
echo 'export PATH="/opt/homebrew/opt/openjdk@25/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
bash
# 1. 访问 https://adoptium.net/temurin/releases/?version=25 下载 macOS .pkg
# 2. 双击运行安装程序
# 3. 配置 JAVA_HOME(添加到 ~/.zshrc)
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 25)' >> ~/.zshrc
source ~/.zshrc
bash
# 访问 https://www.oracle.com/java/technologies/downloads/#jdk25-mac
# 下载 .dmg 文件并双击安装
Windows
bash
# 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash

# 安装 OpenJDK 25
sdk install java 25-open

# 切换到 OpenJDK 25
sdk use java 25-open

# 设为默认
sdk default java 25-open
powershell
# 以管理员身份运行 PowerShell
# 安装 Chocolatey(如已安装可跳过)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 安装 OpenJDK 25
choco install openjdk --version=25
powershell
# 1. 访问 https://adoptium.net/temurin/releases/?version=25 下载 Windows .msi
# 2. 双击运行安装程序,勾选 "Add to PATH"
# 3. 安装完成后重启终端

# 验证安装
java -version
powershell
# 访问 https://www.oracle.com/java/technologies/downloads/#jdk25-win
# 下载 .exe 文件并运行安装向导

WARNING

项目基于 OpenJDK 25 开发,使用虚拟线程等新特性。低于 25 的版本会导致 Unsupported class file 编译错误。

Gradle Wrapper ​

项目使用 Gradle Wrapper,无需手动安装 Gradle。首次运行时会自动下载指定版本(9.6.0)。

若下载失败,可检查 gradle/wrapper/gradle-wrapper.properties 中的 distributionUrl,替换为国内镜像:

properties
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-9.6.0-bin.zip

推荐编辑器 ​

推荐插件 ​

  • Lombok — 支持 Lombok 注解处理
  • MyBatisX — MyBatis 开发辅助,Mapper 跳转
  • Spring Boot Assistant — Spring Boot 配置提示
  • SonarLint — 代码质量检查
  • GitToolBox — Git 增强

项目目录结构 ​

整体仓库结构 ​

guava/
├── guava-parent-starter/         # 父级 BOM(java-platform)
├── guava-component-starter/      # 公共组件模块(java-library)
├── guava-entity-starter/         # 实体模块(java-library)
├── guava-platform-starter/       # 平台基础模块(java-library)
├── guava-gateway-starter/        # 网关服务(port: 7001)
├── guava-login-starter/          # 登录认证服务(port: 7002)
├── guava-admin-starter/          # 后台管理服务(port: 7003)
├── guava-filestore/              # 文件存储服务(port: 7004)
├── guava-redis-starter/          # Redis 缓存服务(port: 7005)
├── guava-mq-provider-starter/    # MQ 消息生产者(port: 7006)
└── guava-mq-consumer-starter/    # MQ 消息消费者(port: 7007)

模块依赖关系 ​

guava-parent-starter (BOM)
        │
        ├── guava-component-starter
        │       ├── guava-entity-starter
        │       └── guava-platform-starter
        │               │
        │               ▼
        │       微服务应用层(依赖 entity + platform)
        │               │
        │               ├── guava-login-starter
        │               ├── guava-admin-starter
        │               ├── guava-redis-starter
        │               ├── guava-filestore
        │               ├── guava-mq-provider-starter
        │               └── guava-mq-consumer-starter
        │
        └── guava-gateway-starter

TIP

  • 微服务应用层(login / admin / redis / filestore / mq)均依赖 guava-entity-starter + guava-platform-starter
  • guava-gateway-starter 为纯 Spring Cloud Gateway,不依赖内部模块

单模块目录结构 ​

以 guava-admin-starter(后台管理服务)为例:

guava-admin-starter/
├── build.gradle.kts                      # 构建配置(依赖、插件、发布)
├── settings.gradle.kts                   # 项目设置(仓库、模块名)
├── gradle.properties                     # Gradle 属性(缓存、并行)
├── gradlew                               # Gradle Wrapper 脚本
├── gradle/
│   ├── libs.versions.toml                # 版本目录(Version Catalog)
│   └── wrapper/                          # Gradle Wrapper 配置
└── src/
    ├── main/
    │   ├── java/com/guava/admin/
    │   │   ├── BootAdminApplication.java # 启动类(@SpringBootApplication)
    │   │   ├── config/                   # 配置类(WebMvc、MyBatis、安全等)
    │   │   ├── constant/                 # 常量定义
    │   │   ├── controller/               # 控制器(按业务分子模块:user/role/dept/menu/dict 等)
    │   │   ├── service/                  # 服务层(接口 + impl 实现,按业务分子模块)
    │   │   ├── repository/               # 数据访问层(MyBatis Mapper)
    │   │   ├── model/                    # 数据模型(PO / DTO / VO)
    │   │   ├── feign/                    # Feign 客户端(调用其他微服务)
    │   │   ├── redis/                    # Redis 操作封装
    │   │   ├── event/                    # Spring 事件
    │   │   └── util/                     # 工具类
    │   └── resources/
    │       ├── application.yml           # 主配置(端口、服务名)
    │       ├── application-dev.yml       # 开发环境配置
    │       ├── application-uat.yml       # 预发布环境配置
    │       ├── application-prod.yml      # 生产环境配置
    │       ├── logback-spring.xml        # 日志配置(按 profile 切换)
    │       ├── mapper/                   # MyBatis XML 映射文件
    │       ├── i18n/                     # 国际化消息
    │       └── static/                   # 静态资源(favicon 等)
    └── test/                             # 测试代码

环境变量 ​

环境变量说明
JAVA_HOMEJDK 25 安装路径
GRADLE_HOMEGradle 安装路径(可选,Wrapper 已内置)

下一步 ​

环境就绪后,参见 本地开发 启动后端服务。