1、MongoDB入门
Spring-date对MongoDB做了支持,使用spring-date-mongodb可以简化MongoDB的操作,通过内部提供的MongoTemplate对象方便的进行数据的CRUD
入门案例:
案例:通过SpringDate-mongo完成数据CRUD
步骤分析:
1、创建工程,导入依赖
2、添加mongodb的配置信息
3、编写实体类,并通过注解配置映射
4、通过注入MongoTeplate进行数据操作
2、今日佳人模块
需求分析:
今日佳人,会推荐缘分支最大的用户,进行展示出来,缘分支的激素那是由用户的行为进行打分,如:点赞、点击、评论、学历、婚姻状态等信息组合而成的。
注意:先不考虑推荐逻辑,只从已有的推荐结果中查询缘分值最高的
数据库表:
推荐用户表
实现步骤:
1、搭建服务提供者
1、配置环境(启动类,配置文件)
2、编写实体类
3、编写API层接口和实现类
2、根据接口编写vo对象
3、根据接口编写Controller
4、service调用API查询数据,构造vo对象并返回
3、推荐好友列表模块
需求分析:
注意:请求方式为Get请求,参数就不会放在请求体中collection方法中不在需要RequestBody进行解析,Get方式请求传递的是请求参数,而不是请求体Body,所以不需要@RequestBody JSON转化。
但是,里面每一项的属性名要和请求过来的每一项参数名保持一致!!
知识扩展:DTO是做参数传递的,VO是做数据响应传递的
实现步骤:
1、获取请求参数
2、Service调用API分页查询 推荐列表
1、调用API查询分页列表
2、根据推荐用户id查询用户详情
3、构造Vo对象
3、API层完成分页查询
代码优化:
在Service中存在一些问题:
在循环查询RecommendUser数据列表是需要多次调用远程userInfo进行查询造成性能问题。
优化:
1、在UserInfoAPI中根据条件一次性查询所有用户列表
1、使用Map集合作为返回值构造方法
2、Service层进行数据筛选