文档站点
Skip to content

创建第一个项目 ​

Laravel 用 laravel new 一键生成项目骨架;Spring Boot 官方等价物是 Spring Initializr(start.spring.io)。它会替你生成目录结构、构建脚本和一个可运行的「空项目」。

方式一:Spring Initializr 网站 ​

打开 https://start.spring.io,按如下配置:

配置项选择说明
ProjectMaven我们用 Maven
LanguageJava—
Spring Boot3.x 最新稳定版示例用 3.x
Groupcom.example对应组织名,类似 PHP 的 Vendor\
Artifactdemo项目名,对应包名的一部分
Java17+与本地 JDK 一致
DependenciesSpring Web至少选这个

点击 GENERATE 下载一个 zip,解压后就是一个完整项目。

方式二:命令行(curl + Maven Wrapper) ​

bash
curl https://start.spring.io/starter.zip \
  -d type=maven-project \
  -d language=java \
  -d bootVersion=3.3.0 \
  -d groupId=com.example \
  -d artifactId=demo \
  -d dependencies=web \
  -d javaVersion=17 \
  -o demo.zip

unzip demo.zip -d demo

项目长什么样 ​

解压后你会得到:

demo/
├── pom.xml              ← 相当于 composer.json,声明依赖
├── mvnw / mvnw.cmd      ← Maven Wrapper,无需全局装 Maven
├── src/
│   ├── main/
│   │   ├── java/com/example/demo/
│   │   │   └── DemoApplication.java   ← 程序入口
│   │   └── resources/
│   │       └── application.properties ← 配置文件(相当于 .env)
│   └── test/
│       └── java/com/example/demo/
│           └── DemoApplicationTests.java

那个 DemoApplication.java 是整个应用的入口:

java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

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

像 public/index.php

main 方法就是 PHP 里的 index.php,是程序启动的入口。@SpringBootApplication 是「一键开启自动配置」的开关,后面架构章节会细讲。

写第一个接口 ​

用「注解」声明一个 Controller。注解就是写在类/方法上、以 @ 开头的标记,Spring 看到标记就自动接线,不需要手写路由文件:

java
package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

运行 ​

bash
# 方式一:Maven Wrapper(推荐,无需全局 Maven)
./mvnw spring-boot:run

# 方式二:装了 Maven
mvn spring-boot:run

看到 Tomcat started on port 8080 后,浏览器访问 http://localhost:8080/hello:

Hello, Spring Boot!

Spring Boot 2.x 的差异

如果你在用 Spring Boot 2.x,上面的代码几乎一模一样,唯一显著差异是包名:3.x 用 jakarta.servlet.*,2.x 用 javax.servlet.*。用到时才需要关心。

依赖怎么加 ​

Laravel 用 composer require laravel/sanctum 加依赖;Java 世界在 pom.xml 里加一行,然后重新加载 Maven:

xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

什么是 starter?

spring-boot-starter-web 这类以 starter 结尾的依赖,是 Spring Boot 的特色:一个 starter = 一组相关依赖的打包。它相当于 Laravel 文档里「安装整套 Web 相关扩展」的一行命令,避免你一个个手动挑选 jar 版本。

接下来,去 目录结构 看看这个项目每部分的作用。

面向 PHP / Laravel 开发者的 Spring Boot 中文文档