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

运行结果

相关推荐
陈随易12 分钟前
一段时间没写文章了,花了10天放了个屁
前端·后端·程序员
星星电灯猴15 分钟前
抓包工具分析接口跳转异常:安全校验误判 Bug 全记录
后端
调试人生的显微镜16 分钟前
后台发热、掉电严重?iOS 应用性能问题实战分析全过程
后端
扑克中的黑桃A17 分钟前
Python 如何获取 request response body
java
用户307429716715824 分钟前
Spring AI 评估-优化器模式完整指南
java·spring boot
扑克中的黑桃A24 分钟前
Spring Mvc + Easyui中根据查询结果导出文件
java
深栈解码24 分钟前
OpenIM 源码深度解析系列(十八):附录二数据库结构
后端
前端付豪31 分钟前
Google Ads 广告系统排序与实时竞价架构揭秘
前端·后端·架构
BillKu32 分钟前
【前后前】导入Excel文件闭环模型:Vue3前端上传Excel文件,【Java后端接收、解析、返回数据】,Vue3前端接收展示数据
java·前端·excel
用户05956611920937 分钟前
现代化 Java 企业级应用分层开发架构设计最佳实践
java·架构·全栈