安装与环境搭建
对应 Laravel 的"安装"章节,以 PHP 开发者视角介绍 Java / Spring Boot 环境搭建。
核心概念对照表
| PHP / Laravel | Java / Spring Boot | 说明 |
|---|---|---|
| PHP 运行时 | JDK (Java Development Kit) | 运行代码的底层引擎 |
| Composer | Maven / Gradle | 包管理与构建工具 |
| php-fpm / Apache | 内嵌 Tomcat / Jetty | Web 服务器 |
| PhpStorm | IntelliJ IDEA | 推荐的 IDE |
| Laravel Installer | Spring Initializr / Maven Archetype | 项目脚手架 |
| php.ini | application.yml / application.properties | 配置文件 |
1. JDK 安装(对应 PHP 运行时)
PHP 开发者用 php -v 检查版本,Java 开发者用 java -version:
bash
# 检查 JDK 版本
java -version
# 输出示例:
# openjdk version "21.0.1" 2023-10-17 LTSSpring Boot 3.x 要求 JDK 17+,推荐 JDK 21。
下载方式
- Oracle JDK:https://www.oracle.com/java/technologies/downloads/(类似从 php.net 下载)
- OpenJDK:https://adoptium.net/(开源版,推荐)
- SDKMAN(见下文,类比 PHP 版本管理工具)
环境变量
安装后需配置 JAVA_HOME 环境变量(类比 PHP 的 PATH 配置):
bash
# 验证 JAVA_HOME
echo $JAVA_HOME
# Windows (PowerShell)
echo $env:JAVA_HOME💡 PHP 差别:PHP 只需将 php.exe 加入 PATH,Java 还需要 JAVA_HOME 指向 JDK 安装目录,因为 Maven、Gradle、IDE 等工具依赖于这个变量。
2. SDKMAN(类比 PHP 版本管理)
PHP 开发者常用 phpbrew 或 docker 切换 PHP 版本。Java 生态中 SDKMAN 是事实标准:
bash
# 安装 SDKMAN(类 Unix 系统)
curl -s "https://get.sdkman.io" | bash
# 查看可用的 JDK 版本
sdk list java
# 安装 JDK 21
sdk install java 21.0.1-tem
# 切换默认 JDK
sdk default java 21.0.1-tem
# 临时切换(类比 `phpbrew use`)
sdk use java 17.0.9-tem💡 Windows 用户推荐直接下载安装包,或用包管理器(scoop / chocolatey)。
3. IntelliJ IDEA(对应 PhpStorm)
同样是 JetBrains 家的产品,布局、快捷键、功能几乎一致:
- IntelliJ IDEA Community(免费版,够用)
- IntelliJ IDEA Ultimate(付费版,有 Spring 专属功能)
如果会用 PhpStorm,直接上手 IntelliJ IDEA 无任何学习成本。
关键差别:
- 需要额外安装 Lombok 插件(后续注解章节会讲)
- Spring Boot 项目默认使用 Maven/Gradle 而非 Composer
- 有
mvn/gradle面板而非composer面板
4. Maven / Gradle(对应 Composer)
Maven(类比 Composer)
PHP 用 composer.json 声明依赖,Java(Maven)用 pom.xml:
xml
<!-- pom.xml(类比 composer.json) -->
<dependencies>
<!-- 类比 "laravel/framework": "^10.0" -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.0</version>
</dependency>
<!-- 类比 "laravel/sanctum" -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>常用命令对照:
| 操作 | Composer | Maven |
|---|---|---|
| 安装依赖 | composer install | mvn install |
| 添加依赖 | composer require xxx | 手动编辑 pom.xml |
| 构建项目 | - | mvn package |
| 清理 | composer clear-cache | mvn clean |
| 运行测试 | phpunit / composer test | mvn test |
Gradle(Composer 替代方案,更现代)
groovy
// build.gradle(替代 pom.xml,更简洁)
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web:3.2.0'
implementation 'org.springframework.boot:spring-boot-starter-security'
}💡 选择建议: Laravel 社区用 Composer,Spring 社区分两派。Maven 更主流(类似 Composer 的地位),Gradle 更现代更快。本系列文档以 Maven 为主。
5. Spring Initializr(对应 Laravel Installer)
| Laravel | Spring Boot |
|---|---|
laravel new my-app | 网页:https://start.spring.io/ |
composer create-project | CLI:mvn archetype:generate |
| 选择模板(jetstream/breeze) | 选择依赖(Spring Web, Security 等) |
在线生成(推荐新手)
- 访问 https://start.spring.io/
- 选:Maven → Java → Spring Boot 3.x
- Group(类比
App\命名空间根):com.example - Artifact(项目名):
my-app - 添加依赖(类比
composer require):- Spring Web(对应
laravel/framework,构建 Web 应用的基础) - Spring Boot DevTools(对应
laravel/horizon的热重载,自动重启) - Lombok(减少样板代码,见后文注解章节)
- Spring Security(对应
laravel/sanctum或laravel/jetstream)
- Spring Web(对应
使用 Maven 命令创建
bash
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false6. 快速验证:第一个 Spring Boot 项目
创建项目后,一个最小的可运行应用:
java
// DemoApplication.java(类似 artisan 启动后的入口文件)
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication // 类比:自动配置 + 类似 bootstrap/app.php 的初始化
@RestController // 类比:继承 Controller 基类
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args); // 类比 php artisan serve
}
@GetMapping("/") // 类比 Route::get('/', function() { ... })
public String hello() {
return "Hello from Spring Boot!";
}
}启动方式对照:
| Laravel | Spring Boot |
|---|---|
php artisan serve | 在 IDE 中点击 Run 按钮 |
访问 http://localhost:8000 | 或 mvn spring-boot:run |
| 修改代码需 F5 刷新 | 访问 http://localhost:8080 |
| 修改代码后 DevTools 自动重启 |
总结:PHP 开发者踩坑提醒
- Java 需要编译 —— 修改代码后必须重新编译(
mvn compile),DevTools 可自动完成,但有短暂的 2-5 秒重启时间 - Maven 下载依赖很慢 —— 建议配置国内阿里云镜像(类似 composer 配置镜像源)
- 千万不要用系统自带的 java.exe 路径带空格 —— 会导致各种诡异问题
- IntelliJ IDEA 和 PhpStorm 是同一家公司的 —— 快捷键通用,无需重新学习