本教程将介绍如何在 Spring Boot 中使用 MongoDB 数据库。我们将使用 Spring Data MongoDB 来简化数据访问。
前置条件
- Java 8 或更高版本
- Spring Boot 2.0 或更高版本
- MongoDB 数据库
步骤
1. 添加依赖
在 pom.xml
文件中添加 Spring Boot 和 Spring Data MongoDB 的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
2. 配置 MongoDB
在 application.properties
文件中配置 MongoDB 连接相关的信息:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabase
3. 创建数据模型
创建一个简单的数据模型 User
:
@Document(collection = "users")
public class User {
@Id
private String id;
private String name;
private int age;
// getters and setters
}
4. 创建数据访问接口
创建一个数据访问接口 UserRepository
,继承自 Spring Data MongoDB 的 ReactiveMongoRepository
:
public interface UserRepository extends ReactiveMongoRepository<User, String> {
}
5. 编写业务逻辑
创建一个业务逻辑类 UserService
,注入 UserRepository
,并实现一些简单的业务方法:
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public Flux<User> getAllUsers() {
return userRepository.findAll();
}
public Mono<User> getUserById(String id) {
return userRepository.findById(id);
}
public Mono<User> createUser(User user) {
return userRepository.save(user);
}
public Mono<Void> deleteUserById(String id) {
return userRepository.deleteById(id);
}
}
6. 编写控制器
创建一个控制器 UserController
,注入 UserService
,并实现一些简单的 REST API:
@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
public Flux<User> getAllUsers() {
return userService.getAllUsers();
}
@GetMapping("/{id}")
public Mono<User> getUserById(@PathVariable String id) {
return userService.getUserById(id);
}
@PostMapping
public Mono<User> createUser(@RequestBody User user) {
return userService.createUser(user);
}
@DeleteMapping("/{id}")
public Mono<Void> deleteUserById(@PathVariable String id) {
return userService.deleteUserById(id);
}
}
7. 启动应用
启动应用之后,访问 http://localhost:8080/users
可以获取所有用户列表。其他 REST API 可以类似地访问。
结论
本教程介绍了如何在 Spring Boot 中使用 MongoDB 数据库。Spring Data MongoDB 大大简化了数据访问,让我们更专注于业务逻辑的实现。