- 数据库表和持久化类
表:user、mood、user_mood_praise_rel
持久化类:User、Mood、UserMoodPraiseRel
- DAO层和Mappere映射文件
UserDao:根据id查某个用户
MoodDao:查所有说说、根据id查某条说说、传入mood更新一条说说。
UserMoodPraiseRelDao:传入userMoodPraiseRel,保存一条点赞记录
- Service层和DTO类
MoodDTO:方便前端得到mood、user的属性
UserDTO:不变
UserService实现类:查询某个用户,转为DTO
MoodService实现类:
moodDao查询所有说说,遍历说说,根据userDao查询用户,放入DTO中;
根据id查说说、更新一条说说、点赞业务:userMoodPraiseRelDao保存一条点赞记录,id查询某条说说并更新;
点赞记录存储到redis、redis+mysql展示所有说说
UserMoodPraiseRelService实现类:保存一条点赞记录
- Controller层和前端页面
UserController
MoodController:
查询所有说说,放入model,跳转前端页面;
点赞处理,再查询所有说说;
点赞redis处理,再查询所有说说
redis
第一、key:PRAISE_HASH_KEY,value:说说id的set集合
第二、key:moodId,value:userId的set集合
用户点赞,redis保存点赞数据,quartz定时任务处理点赞,保存到mysql。
-
Quartz 定时任务
从redis中取数据,通过service层的save()和update(),保存到MySQL中,清除redis数据。 -
ActiveMQ
异步处理,缓解redis缓存的压力
MoodProducer:jmsTemplate,定义destination队列名称、moodDTO
MoodConsumer: