# 目录
[TOC]
# 项目简介
2023年毕设、校园论坛、网上社区、仿牛客论坛这一类的项目。
**前端项目: **[MuXiang123/wendao-vue (github.com)](https://github.com/MuXiang123/wendao-vue)
### 技术栈
- 后端: SpringBoot SpringMVC Mybatis Redis ElasticSearch Quartz
- 前端: vue Element-UI Axios
### 主要功能
本系统主要包括用户模块、文章模块、通信模块、视频模块、搜索功能等模块。其中,用户模块主要负责用户的注册、登录、信息修改等操作;文章管理模块主要负责问题的发布、浏览、回答等操作;私信管理模块主要负责私信的发送、接收等操作;视频管理模块主要负责视频的浏览等操作;搜索管理模块主要负责问题的搜索和答案的搜索等操作。
### 系统功能架构图
![image-20230618141102891](https://github.com/MuXiang123/wendao/blob/master/README.assets/image-20230618141102891.png)
# 如何部署
## 环境配置
- JDK 1.8
- Elasticsearch-7.0.0
- Redis (本地开发下载的是windows版本)自己用的是5.0.x版本
- MySQL 8.0及以上
- Nginx (我使用的版本是1.22.1)
### 部署步骤
1. 导入数据库,数据库名为``wendao``
2. 修改application-dev.yml中的内容
3. 启动redis和ElasticSearch
4. 启动项目
# 中间件安装
### redis
在windows系统下安装redis
redis下载链接 :[Releases · tporadowski/redis (github.com)](https://github.com/tporadowski/redis/releases)
如果不会安装的,可以参考[Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)_redis安装_明金同学的博客-CSDN博客](https://blog.csdn.net/weixin_44893902/article/details/123087435)
### ElasticSearch
下载地址:[Releases · elastic/elasticsearch (github.com)](https://github.com/elastic/elasticsearch/releases) 找到自己合适的版本下载,本项目使用的是7.0.0
并且也要安装ik中文分词器,主要ik分词器的版本和es的版本要对应。readme文件中有讲:[medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. (github.com)](https://github.com/medcl/elasticsearch-analysis-ik)
ik分词器下载地址:[Releases · medcl/elasticsearch-analysis-ik (github.com)](https://github.com/medcl/elasticsearch-analysis-ik/releases)
不会安装可以百度教程。
### Nginx配置
Nginx安装教程 [Nginx系列:windows10系统下安装nginx的安装并配置!_windows10安装nginx_陈永佳的博客-CSDN博客](https://blog.csdn.net/Mrs_chens/article/details/92961608)
本项目使用的nginx是1.22.1版本。
安装完成后进行配置,在nginx -> conf -> nginx.conf 中添加server配置,安装实际的前端和后端项目进行设置。
```
server{
listen 7777; //这里是你想要映射出来的端口
# server_name 127.0.0.1;
location /{
proxy_pass http://127.0.0.1:5173; //这是前端的host
}
location /api/{
proxy_pass http://127.0.0.1:8081/; //这是后端的host
}
}
```
# 配置文件中的问题
### b站的cookie
该项目中的视频模块,是通过实时获取b站的视频直链和feed链接得到视频的。可能有些链接需要省份验证,因此需要登录b站 -> f12 -> application
获取SESSDATA填入yml中。
![image-20230618143345645](https://github.com/MuXiang123/wendao/blob/master/README.assets/image-20230618143345645.png)
### 开通腾讯云对象存储
[对象存储数据处理_COS数据处理_数据处理方案-腾讯云 (tencent.com)](https://cloud.tencent.com/product/cos)
对象存储用来存储项目中出现的图片。腾讯云对象存储有免费额度。
首先按照腾讯云官方文档开通对象存储服务
[对象存储简介_对象存储购买指南_对象存储操作指南-腾讯云 (tencent.com)](https://cloud.tencent.com/document/product/436)
接着在控制台->访问密钥 中将SecretId 和 SecretKey 填到yml中。
### 开通腾讯云IM
使用腾讯云即时通讯作为本系统聊天模块的功能实现,可以使用IM体验版。
[即时通信_免费即时通信_即时通信价格 - 腾讯云 (tencent.com)](https://cloud.tencent.com/product/im)
首先开通腾讯云IM 参考官方文档[即时通信 IM Web-含 UI 集成方案(荐)-文档中心-腾讯云 (tencent.com)](https://cloud.tencent.com/document/product/269/79737)
本项目直接在前端项目中使用腾讯云,参考文档[即时通信 IM Web-含 UI 集成方案(荐)-文档中心-腾讯云 (tencent.com)](https://cloud.tencent.com/document/product/269/79737)
### 数据库账户名密码
记得填自己本机的MySQL用户名密码。
# 项目部分功能设计思路
### 1 查看热点文章实现思路
热点文章设计为:根据文章的浏览量降序排列,取TOP10进行展示
### 2 上传图片(使用七牛云服务器存储图片)实现思路
上传用户头像、修改用户头像操作将图片上传至腾讯云服务器上,自己上传了一张照片,返回的在线地址,这样就减少数据库存储图片带来的性能开销。
### 3 关注/取消关注别人,关注/粉丝列表实现思路
基于Redis的Set数据结构实现,原因是该结构类似于Java中的Hashset,可以实现去重功能,用sadd、scard来实现即可.
### 4 用户成就值排行榜实现思路
成就值加分规则:
- 当用户发表一篇文章的时候,成就值+10分
- 当用户的文章被别人点赞一次之后,成就值+5分
- 当用户的文章被别人评论一次之后,成就值+5分
- 当用户被一个人关注后,成就值+10分
实现思路:使用Quartz定时器框架,每一个月将用户的成就值清零,在这一个月之内根据用户的成就值降序排列,取成就值TOP10.
# 项目重难点功能设计思路
### 1 异步通知功能设计
一般我们在购物或者博客的网站上都会收到系统推送的通知消息,而对应于校园论坛网站的开发中,我自己设计为当用户A对用户B发表的文章点赞、评论、以及用户A关注了用户B,都用到了异步通知的设计。 异步通知和同步通知(以点赞业务为例)的区别是:
- 同步通知,点赞之后必须等到该操作执行完所有操作(更新点赞数等业务),才能执行后面的代码;
- 异步通知,点赞之后启动一个新的线程去处理异步通知的业务逻辑,主线程执行后面的代码,互不影响,提升用户体验;
![image-20230618154257092](https://github.com/MuXiang123/wendao/blob/master/README.assets/image-20230618154257092.png)
如上图所示,异步通知的设计思路如下,分为业务代码、生产者、消费者、消息队列、统一的接口以及实现类,即:业务代码(如点赞业务)首先将点赞的事件封装成一个eventModel对象,然后将其传给生产者,生产者将该事件推到Redis的list的消息队列中,然后消费者监听有哪些实现类实现了统一的接口,并将其保存至Map中,然后开启一个新的线程不断的从消息队列中消费事件,如果有事件则根据事件的类型(点赞/评论/我的关注),去执行对应的实现类。在实现类中的实现是将事件的具体的内容(如用户A点赞了用户B的文章)保存至数据库中,并且设置有一个属性为has_read属性,默认为0(表示有未读消息),然后前端的实现是启用3秒的定时器轮询的调用接口(这个接口的作用是给前端返回有没有未读数据),如果有未读消息,就会给用户提示,当用户查看了提示的内容之后,将所有通知的has_read属性设置为1(表示没有未读消息),这样即实现了异步通知的功能。
### 2 ELK(ElasticSearch+Logstash+Kibana)同步MySQL以及ES搜索和MySQL模糊查询的搜�
没有合适的资源?快使用搜索试试~ 我知道了~
2023年毕设。SpringBoot校园论坛、网上社区、仿牛客论坛这一类的项目。.zip
共141个文件
java:110个
xml:10个
png:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 107 浏览量
2023-10-26
19:59:52
上传
评论 1
收藏 942KB ZIP 举报
温馨提示
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
2023年毕设。SpringBoot校园论坛、网上社区、仿牛客论坛这一类的项目。.zip (141个子文件)
mvnw.cmd 7KB
.gitignore 388B
maven-wrapper.jar 59KB
TLSSigAPIv2.java 18KB
VideoServiceImpl.java 10KB
ArticleController.java 9KB
JedisService.java 8KB
ArticleServiceImpl.java 8KB
ElasticSearchServiceTest.java 7KB
FollowController.java 7KB
VideoServiceTest.java 7KB
LoginController.java 6KB
UserMapperTest.java 5KB
UserServiceImpl.java 5KB
ArticleMapper.java 5KB
CommentController.java 4KB
CommentServiceImpl.java 4KB
EventConsumer.java 4KB
LikeController.java 4KB
UserController.java 4KB
RegisterController.java 4KB
ElasticSearchServiceImpl.java 4KB
ArticleService.java 4KB
VideoController.java 3KB
HttpClientUtils.java 3KB
LikeServiceImpl.java 3KB
ChatEndPoint.java 3KB
IpUtils.java 3KB
IndexController.java 3KB
Article.java 3KB
UserServiceTest.java 3KB
CommentHandler.java 3KB
NoticeController.java 3KB
EventModel.java 2KB
LikeHandler.java 2KB
FansController.java 2KB
QuartzConfig.java 2KB
BvToAvUtils.java 2KB
FollowHandler.java 2KB
LikeMapperTest.java 2KB
ArticleMapperTest.java 2KB
VideoService.java 2KB
CodeMsg.java 2KB
CosClientConfig.java 1KB
CommentMapper.java 1KB
UserService.java 1KB
CategoryServiceImpl.java 1KB
FollowServiceImpl.java 1KB
CommentService.java 1KB
UserMapper.java 1KB
RedisConfig.java 1KB
User.java 1KB
NoticeServiceImpl.java 1KB
RandomUtils.java 1KB
CommonUtils.java 1KB
AchieveValueTask.java 1KB
LikeTask.java 1KB
GenerateRandomCode.java 1KB
CommentServiceTest.java 1013B
FollowService.java 960B
EventProducer.java 949B
CategoryMapper.java 940B
UserInfoVo.java 928B
CategoryService.java 905B
CorsConfig.java 902B
FollowMapper.java 885B
FansServiceImpl.java 880B
LeaderBoardController.java 869B
Comment.java 864B
NoticeMapper.java 862B
CommentMapperTest.java 826B
MybatisConfig.java 816B
LikeService.java 783B
Notice.java 761B
VideoMapper.java 754B
NoticeService.java 750B
BasePrefix.java 749B
LikeMapper.java 737B
CommentUserVo.java 737B
Base64URL.java 731B
Result.java 719B
WendaoApplication.java 670B
ElasticSearchService.java 664B
VideoActionDto.java 653B
Message.java 647B
ArticleUserVo.java 647B
LikeKey.java 582B
FansMapper.java 575B
Follow.java 551B
Fans.java 545B
UserTokenKey.java 542B
UserData.java 541B
VerifyCodeKey.java 524B
Utils.java 458B
FollowKey.java 447B
FansKey.java 420B
EventHandler.java 413B
Category.java 403B
VideoCategory.java 387B
EventType.java 384B
共 141 条
- 1
- 2
资源评论
天天501
- 粉丝: 616
- 资源: 5906
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JAVA的SpringBoot宠物医院管理系统源码数据库 MySQL源码类型 WebForm
- 贪心算法 - 数据结构与算法
- C#ASP.NET网络进销存管理系统源码数据库 SQL2008源码类型 WebForm
- Liny 的浏览器为 HarmonyOS NEXT 而构建,旨在为各种性能水平的设备提供一个浏览器的轻量之选
- FLASH批量导入PSD文件
- 529f675667cf31af3454bd60644e631a.mp4
- 此文件夹包含用于分析和转换 .d.ts文件,目的是将 ArkUI 界面暴露给更多语言和运行时
- 考研真题及讲解介绍-数学-2024
- stm32串口调试工具STC-ISP
- STM32Fxx英文参考手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功