Spring Boot 3 单模块项目工程搭建 - 下篇(个人开发模板)
在上一篇文章中,我们完成了Spring Boot 3单模块项目的初步搭建,包括基础的项目结构和依赖配置。在本篇文章中,我们将进入更深入的开发,示范如何结合Spring Boot的基本功能来创建一个简单的RESTful API服务,并进行基本的业务逻辑实现。
1. 项目结构回顾
在开发中,我们的项目结构如下:
my-spring-boot-app
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── DemoApplication.java
│ │ │ ├── controller
│ │ │ │ └── UserController.java
│ │ │ ├── service
│ │ │ │ └── UserService.java
│ │ │ └── model
│ │ │ └── User.java
│ │ └── resources
│ │ └── application.yml
└── pom.xml
2. 业务逻辑与模型
在此示例中,我们将创建一个简单的用户管理服务,包含用户的基本信息。首先,我们需要定义一个用户模型类User.java
。
package com.example.demo.model;
public class User {
private Long id;
private String name;
private String email;
// 构造方法
public User(Long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
// Getter 和 Setter 方法
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
3. 服务层
接下来,在service
包中创建一个服务类UserService.java
,该服务类负责用户数据的处理逻辑。
package com.example.demo.service;
import com.example.demo.model.User;
import java.util.ArrayList;
import java.util.List;
public class UserService {
private List<User> users = new ArrayList<>();
public UserService() {
// 初始化一些用户数据
users.add(new User(1L, "张三", "zhangsan@example.com"));
users.add(new User(2L, "李四", "lisi@example.com"));
}
public List<User> findAll() {
return users;
}
public User findById(Long id) {
return users.stream().filter(user -> user.getId().equals(id)).findFirst().orElse(null);
}
}
4. 控制器层
再来创建控制器类UserController.java
,它用于处理HTTP请求并返回用户数据。
package com.example.demo.controller;
import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
private final UserService userService;
public UserController() {
this.userService = new UserService();
}
@GetMapping("/users")
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.findAll());
}
@GetMapping("/users/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userService.findById(id);
if (user != null) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.notFound().build();
}
}
}
5. 启动类
我们的启动类DemoApplication.java
保持不变,确保在类上添加@SpringBootApplication
注解。
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);
}
}
6. 配置文件
在application.yml
中,我们可以设置简单的配置。例如:
server:
port: 8080
7. 运行与测试
完成以上步骤后,可以运行Spring Boot应用程序。在浏览器或Postman中访问以下URL:
- 获取所有用户:
http://localhost:8080/users
- 根据ID获取用户:
http://localhost:8080/users/1
总结
通过上述步骤,我们成功构建了一个简单的RESTful API。使用Spring Boot 3,我们简化了项目的开发过程,使得开发者能更专注于业务逻辑的实现。未来可以根据需求继续扩展功能,如添加数据库支持、进行用户验证等。希望这个简单的示例能帮助你更好地理解Spring Boot的基本用法,让你在个人开发中更得心应手。