Spring Boot是一个开源的Java基础框架,它使得创建独立的、生产级别的Spring应用变得更容易。它“跑起来”即可用,内嵌了Tomcat、Jetty等Servlet容器,无需部署WAR文件,也无需单独的Servlet容器。
环境准备
在开始之前,请确保你的开发环境中安装了以下软件:
- Java Development Kit (JDK) 8 或更高版本
- Maven 3.0 或更高版本
- 一个文本编辑器或IDE(如IntelliJ IDEA或Eclipse)
- Git
创建Spring Boot项目
我们可以通过Spring Initializr快速生成一个Spring Boot项目的基础结构。
- 访问 Spring Initializr
- 选择生成Maven项目,选择Java语言
- 指定项目元数据(Group, Artifact, Name, Description)
- 添加依赖(Dependencies),我们至少需要
Spring Web依赖 - 点击“Generate”生成项目,下载并解压
项目架构图

图展示了Spring Boot应用的基本架构,包括启动类、控制器、服务、仓库和实体类,以及它们之间的关系。
项目结构
解压后的项目结构大致如下:
my-application/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── myapplication/
│ │ │ ├── MyApplication.java
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── static/
│ │ └── index.html
├── pom.xml
└── README.md
编写Hello World应用
1. 启动类
在com.example.myapplication包中创建一个启动类MyApplication.java:
1 2 3 4 5 6 7 8 9 10 11 12
| package com.example.myapplication;
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication public class MyApplication {
public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
|
2. 控制器
在com.example.myapplication.controller包中创建一个控制器类HelloController.java:
1 2 3 4 5 6 7 8 9 10 11 12 13
| package com.example.myapplication.controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
@RestController public class HelloController {
@GetMapping("/hello") public String sayHello() { return "Hello, World!"; } }
|
3. 运行应用
在项目根目录下运行以下命令来启动应用:
应用启动后,访问http://localhost:8080/hello,你将看到输出Hello, World!。
案例:Todo应用
1. 添加依赖
在pom.xml中添加以下依赖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> </dependencies>
|
2. 实体类
创建Todo实体类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package com.example.myapplication.model;
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;
@Entity public class Todo {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String description; private boolean completed;
}
|
3. 仓库接口
创建TodoRepository接口:
1 2 3 4 5 6 7
| package com.example.myapplication.repository;
import com.example.myapplication.model.Todo; import org.springframework.data.repository.CrudRepository;
public interface TodoRepository extends CrudRepository<Todo, Long> { }
|
4. 服务类
创建TodoService服务类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.example.myapplication.service;
import com.example.myapplication.model.Todo; import com.example.myapplication.repository.TodoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;
import java.util.List;
@Service public class TodoService {
@Autowired private TodoRepository todoRepository;
public List<Todo> getAllTodos() { return todoRepository.findAll(); }
public Todo addTodo(Todo todo) { return todoRepository.save(todo); }
}
|
5. 控制器
更新HelloController为TodoController:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package com.example.myapplication.controller;
import com.example.myapplication.model.Todo; import com.example.myapplication.service.TodoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController @RequestMapping("/todos") public class TodoController {
@Autowired private TodoService todoService;
@GetMapping public List<Todo> getAllTodos() { return todoService.getAllTodos(); }
@PostMapping public Todo addTodo(@RequestBody Todo todo) { return todoService.addTodo(todo); }
}
|
6. 运行应用
运行应用后,你可以使用Postman或curl来测试API:
- 获取所有Todo:
GET http://localhost:8080/todos - 添加Todo:
POST http://localhost:8080/todos,请求体为JSON格式的Todo对象。
总结
Spring Boot简化了Spring应用的创建和配置,使得开发者可以专注于业务逻辑。通过本文,你已经学会了如何创建一个简单的Spring Boot应用,并了解了一个Todo应用的实现。希望这能帮助你快速上手Spring Boot。