package org.cyl.test02.entity;// Task.java
import lombok.Data;
@Data
public class Task {
private String id;
private String description;
}
引入依赖
<!-- Spring Data MongoDB -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
创建TaskRepository接口
package org.cyl.test02.repository;// TaskRepository.java
import org.cyl.test02.entity.Task;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
public interface TaskRepository extends ReactiveCrudRepository<Task, String> {
}
package org.cyl.test02.controller;// TaskController.java
import org.cyl.test02.entity.Task;
import org.cyl.test02.repository.TaskRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@RestController
@RequestMapping("/tasks")
public class TaskController {
@Autowired
private TaskRepository taskRepository;
@GetMapping
public Flux<Task> getAllTasks() {
return taskRepository.findAll();
}
@GetMapping("/{id}")
public Mono<Task> getTaskById(@PathVariable String id) {
return taskRepository.findById(id);
}
@PostMapping
public Mono<Task> createTask(@RequestBody Task task) {
return taskRepository.save(task);
}
@PutMapping("/{id}")
public Mono<Task> updateTask(@PathVariable String id, @RequestBody Task task) {
task.setId(id);
return taskRepository.save(task);
}
@DeleteMapping("/{id}")
public Mono<Void> deleteTask(@PathVariable String id) {
return taskRepository.deleteById(id);
}
}
spring:
data:
mongodb:
uri: mongodb://localhost:27017/student