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

运行结果

相关推荐

  1. MongoDB CRUD 概述

    2024-01-17 19:14:02       56 阅读
  2. IoTDB数据库整合MyBatis实现SpringBoot项目CRUD

    2024-01-17 19:14:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 19:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 19:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 19:14:02       82 阅读
  4. Python语言-面向对象

    2024-01-17 19:14:02       91 阅读

热门阅读

  1. Hive数学函数讲解

    2024-01-17 19:14:02       50 阅读
  2. spring boot 引入redis报错

    2024-01-17 19:14:02       53 阅读
  3. Spring Boot 进行 MockMvc 单元测试的实例

    2024-01-17 19:14:02       40 阅读
  4. 《设计模式的艺术》笔记 - 面向对象设计原则

    2024-01-17 19:14:02       56 阅读
  5. 设计模式-桥接模式

    2024-01-17 19:14:02       56 阅读
  6. 高防IP如何有效应对网站DDOS攻击

    2024-01-17 19:14:02       67 阅读
  7. WINCC 传入值一维数组 返回值二维数组

    2024-01-17 19:14:02       51 阅读
  8. 服务器 Linux常见指令

    2024-01-17 19:14:02       56 阅读