Springboot WebFlux项目结合mongodb进行crud

第一步:创建项目

第二步:给mongodb插入数据

第三步:创建实体类

复制代码
package org.cyl.test02.entity;// Task.java
import lombok.Data;

@Data
public class Task {
    private String id;
    private String description;
}

第四步:创建Repository

引入依赖

复制代码
 <!-- 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> {

}

第五步:创建Controller

复制代码
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);
    }
}

第六步:配置yml文件

复制代码
spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/student

运行结果

相关推荐
copyer_xyf11 小时前
Agent 流程编排
后端·python·agent
copyer_xyf12 小时前
Agent RAG
后端·python·agent
copyer_xyf12 小时前
【RAG】向量数据库:milvus
后端·python·agent
铁皮饭盒12 小时前
Bun 哪比 Node.js 快?
javascript·后端
copyer_xyf12 小时前
Agent 记忆管理
后端·python·agent
葫芦和十三19 小时前
图解 MongoDB 02|BSON:你以为存的是 JSON,其实是带类型的二进制
后端·mongodb·agent
葫芦和十三19 小时前
图解 MongoDB 01|文档数据库
后端·mongodb·agent
陈随易21 小时前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人1 天前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong1 天前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构