Spring Boot集成Spring Security系列九之集成MongoDB

317 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第21天,点击查看活动详情

大家好,我是程序员路飞,三年的下水道打杂前端,喜欢研究技术,正在往全栈发展
欢迎小伙伴们加我微信:DZHningmeng,一起讨论,期待与大家共同成长🥂

前言

这是Spring Boot集成Spring Security的第六章,我将会通过这个系列文章,包括完整的项目搭建、编码过程实现(认证和授权),关键点讲解,来帮助大家了解Spring Security在实际项目中的应用

今天这篇内容是集成MongoDB

源码链接

往期系列

Spring Boot集成Spring Security系列一之搭建项目

Spring Boot集成Spring Security系列二之查询用户

Spring Boot集成Spring Security系列三之自定义登录

Spring Boot集成Spring Security系列四之接口鉴权

Spring Boot集成Spring Security系列五之Redis持久化缓存

Spring Boot集成Spring Security系列六之缓存操作异常

Spring Boot集成Spring Security系列七之接口异常处理

功能实现

MongoDB

MongoDB是一个非关系型数据库,利用json格式来存储数据

引入依赖

<!---mongodb相关依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置文件

data:
  mongodb:
    uri: mongodb+srv://root:xxxx@cluster0.oyide.mongodb.net/test?retryWrites=true&w=majority
    database: mall

我这里用的是官网免费提供的512MB的数据库,已经足够我测试用了,大家也可以自己本地搭建,这边就不多叙述了

image.png

编写查询代码

实体类

package com.example.springsecurity.nosql.mongodb.document;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
 * @Author Ning Meng
 * @Date 2022/4/28 10:52
 **/

@Document
@Data
public class MemberReadDocument {
    @Id
    private String id;
    @Indexed
    private Long memberId;
    private String memberNickname;
    private String memberIcon;
    @Indexed
    private Long productId;
    private String productName;
    private String productPic;
    private String productSubTitle;
    private String productPrice;
    private Date createTime;
}

查询方法

package com.example.springsecurity.nosql.mongodb.repository;

import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

/**
 * @Author Ning Meng
 * @Date 2022/4/28 10:50
 **/

public interface MemberReadRepository extends MongoRepository<MemberReadDocument, String> {
    List<MemberReadDocument> findMemberReadRepositoryByMemberId(Long memberId);
}

编写测试类

package com.example.springsecurity;

import cn.hutool.core.lang.Assert;
import com.example.springsecurity.nosql.mongodb.document.MemberReadDocument;
import com.example.springsecurity.nosql.mongodb.repository.MemberReadRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

/**
 * @Author Ning Meng
 * @Date 2022/4/28 11:26
 **/

@SpringBootTest
public class mongodbTest {

    @Autowired
    private MemberReadRepository memberReadRepository;

    @Test
    void findMemberReadRepositoryByMemberId() {
        List<MemberReadDocument> memberReadRepositoryList = memberReadRepository.findByMemberIdOrderByCreateTimeDesc(2L);
        Assert.notEmpty(memberReadRepositoryList);
    }

🚴‍♀️ 结束语

通过项目实践,结合具体的步骤,输出相关的文章,给小伙伴一些有些的知识点,希望大家喜欢我的文章,希望认识到更多志同道合的伙伴,如果你也对技术感兴趣,可以加我好友互相探讨一起进步

Github: Cheering-baby

公众号: 程序员路飞

vx: DZHningmeng

最后,如果喜欢我的文章,可以给个赞👍或者关注➕都是对我最大的支持