MongoDB

数据量大且数据重要程度不高可以将数据存储到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封装查询条件,进行查询的代码构建思路类似。

你可能感兴趣的:(微服务项目复习总结,mongodb,数据库)