MongoDB

本文介绍了如何在SpringBoot项目中使用MongoDB存储不重要的大量数据,并展示了如何利用Template方法设计模式简化数据库操作。还讨论了在微服务架构中通过拦截器处理用户ID并在不同服务间传递的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据量大且数据重要程度不高可以将数据存储到mongoDB中,比如说搜索历史记录

java实现简易叙述

Spring设计模式中有一种设计模式叫做模板方法,模板方法是用来解决代码重复问题的,MongoDB、Redis等nosql非关系型数据库都运用了这个设计模式,在java中的应用都会通过添加依赖、配置服务器数据库链接信息等方式,最终通过注入StringRedisTemplate、MongoTemplate等以Template结尾的对数据库操作的类,最终实现这些nosql数据库在Java中的实现。

1.添加spring-boot-starter-data-mongodb依赖

2.配置文件spring.data.mongodb.host  .port   .database  配置服务器monggoDB地址端口及数据库名称

3.添加实体@Document("集合名称")注解将java对象保存到指定的MongoDB集合中

4.配置拦截器如UserInterceptor实现HandlerInterceptor,实现HandlerInterceptor会重写两个方法,前置拦截方法preHandle和后置拦截方法postHandle。

在微服务项目中各微服务是不可能在同一线程内的,用户的ID信息是无法像单体服务中直接将其储存在ThreadLocal中的,需要服务提供者将ID信息储存在请求头中,服务消费者通过拦截器将请求头中的ID信息拦截下来放入ThreadLocal中,在后续service中可以随时获取到,以上拦截获取过程放在前置拦截方法内,后置拦截方法将UserThreadLocal移除掉即可。

5.拦截器配置WebConfig实现WebMvcConfigurer,上标注配置注解@Configuration,重写addInterceptors方法registry.addInterceptor(new UserInterceptor())指定拦截器并且
.addPathPatterns("/**"); 指定需要拦截的地址

6.业务层注入MongoTemplate开始调用模板方法即可。

其中可使用工具类Criteria构建查询条件,创建查询对象query进行查询,与MybatisPlus中的LambdaQueryWrapper封装查询条件,进行查询的代码构建思路类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值