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

运行结果

相关推荐
CodeAmaz1 天前
统一发包管理(Maven 仓库)详细步骤
java·maven·运维开发·个人开发
没有bug.的程序员1 天前
Spring Cloud Bus 事件广播机制
java·开发语言·spring boot·hystrix·feign·springcloudbus·事件广播机制
找不到、了1 天前
Java系统设计知识整理《1》
java·开发语言
郏国上1 天前
由于图片视频替换和删除导致阿里云上存在大量系统不再使用的文件如何处理
数据库·mongodb·阿里云
q***06291 天前
环境安装与配置:全面了解 Go 语言的安装与设置
开发语言·后端·golang
程序猿七度1 天前
【Excel导入】读取WPS格式嵌入单元格内的图片
java·开发语言·wps
楼田莉子1 天前
C++/Linux小项目:自主shell命令解释器
linux·服务器·开发语言·c++·后端·学习
用户298698530141 天前
Java: 为PDF批量添加图片水印实用指南
java·后端·api
昨天的猫1 天前
《拒绝重复代码!模板模式教你优雅复用算法骨架》
后端·设计模式