黑马探花交友----2.实现首页功能-今日佳人
学习目标:
- 首页功能说明
- 实现今日佳人功能
- 统一接口服务地址
- 实现推荐用户的列表
- 接口增加缓存功能
- 整合前端联调测试
1、首页
在用户登录成功后,就会进入首页,首页中有今日佳人、推荐好友、探花、搜附近等功能。
2、今日佳人
会智能推荐缘分值最大的用户,进行展现出来。缘分值的计算是由用户的行为进行打分,
如:点 击、点赞、评论、学历、婚姻状态等信息组合而成的。
首页效果如图:
实现逻辑:
我们先不考虑推荐的逻辑,假设现在已经有推荐的结果,我们只需要从结果中查询到缘分值最高 的用户就可以了。
至于推荐的逻辑以及实现,我们将后面讲解。
流程:
3、部署MongoDB
#拉取镜像 docker pull mongo:4.0.3
#创建容器 docker create --name mongodb --restart=always -p 27017:27017 -v mongodb:/data/db mongo:4.0.3
#启动容器 docker start mongodb
#进入容器 docker exec -it mongodb /bin/bash
#使用MongoDB客户端进行操作 mongo > show dbs
#查询所有的数据库 admin 0.000GB config 0.000GB local 0.000GB
通过Robo进行查询
4、搭建工程
系统采用SpringBoot、Dubbo构建,首先开发的是dubbo服务工程。
...../......
5、业务实现
实现描述:
需要根据前端定义的结构定义java对象
根据sso系统提供的接口查询当前登录用户的信息
根据dubbo系统提供的服务进行查询今日佳人数据
5.1 统一接口服务入口
现在我们有sso和server需要对外提供接口服务,而在前端只能设置一个请求地址,
所以我们需要将服务接口统一下,需要使用nginx进行统一入口。
5.2 推荐列表
查询首页需要的数据列表,要实现的数据效果,如下:
5.3 缓存
实现缓存逻辑有2种方式:
1. 每个接口单独控制缓存逻辑 2. 统一控制缓存逻辑
5.4 响应结果写入到缓存
前面已经完成了缓存命中的逻辑,那么在查询到数据后,如果将结果写入到缓存呢?
------思考:通过拦截器可以实现吗?
通过ResponseBodyAdvice进行实现。 ResponseBodyAdvice是Spring提供的高级用法,会在结果被处理前进行拦截,拦截的逻辑自己实现, 这样就可以 实现拿到结果数据进行写入缓存的操作了。