创建第一个项目
Laravel 用
laravel new一键生成项目骨架;Spring Boot 官方等价物是 Spring Initializr(start.spring.io)。它会替你生成目录结构、构建脚本和一个可运行的「空项目」。
方式一:Spring Initializr 网站
打开 https://start.spring.io,按如下配置:
| 配置项 | 选择 | 说明 |
|---|---|---|
| Project | Maven | 我们用 Maven |
| Language | Java | — |
| Spring Boot | 3.x 最新稳定版 | 示例用 3.x |
| Group | com.example | 对应组织名,类似 PHP 的 Vendor\ |
| Artifact | demo | 项目名,对应包名的一部分 |
| Java | 17+ | 与本地 JDK 一致 |
| Dependencies | Spring Web | 至少选这个 |
点击 GENERATE 下载一个 zip,解压后就是一个完整项目。
方式二:命令行(curl + Maven Wrapper)
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 是整个应用的入口:
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 看到标记就自动接线,不需要手写路由文件:
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!";
}
}运行
# 方式一: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:
<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 版本。
接下来,去 目录结构 看看这个项目每部分的作用。