栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

基于SpringBoot 适合学习的开源社区平台

基于SpringBoot 适合学习的开源社区平台

今天TJ君要给大家分享的是一个集合各种技术的开源社区平台,Echo

平台使用的主要技术有:SpringBoot + MyBatis + MySQL + Redis + Kafka + Elasticsearch + Spring Security,常见社区平台中应有的帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据统计等模块都可以支持实现。

前后端主要用到的技术栈有:

前端

Thymeleaf

Bootstrap 4.x

Jquery

Ajax

后端

Spring

Spring Boot 2.1.5 RELEASE

Spring MVC

ORM:MyBatis

数据库:MySQL 5.7

分布式缓存:Redis

本地缓存:Caffeine

消息队列:Kafka 2.13-2.7.0

搜索引擎:Elasticsearch 6.4.3

安全:Spring Security

邮件任务:Spring Mail

分布式定时任务:Spring Quartz

日志:SLF4J(日志接口) + Logback(日志实现)

这些技术栈与功能列表的详细对应关系可从下图看出:

TJ君简单看了一下,如果要更进一步详细描述平台已经实现的功能的话,就是:

注册

登录 | 登出

动态生成验证码

记住我

账号设置

修改头像

修改密码

过滤敏感词

前缀树

帖子模块

发布帖子(过滤敏感词)

分页显示所有的帖子

支持按照 “发帖时间” 显示

支持按照 “热度排行” 显示(Spring Quartz)

查看帖子详情

权限管理(Spring Security + Thymeleaf Security)

未登录用户无法发帖

“版主” 可以看到帖子的置顶和加精按钮并执行相应操作

“管理员” 可以看到帖子的删除按钮并执行相应操作

“普通用户” 无法看到帖子的置顶、加精、删除按钮,也无法执行相应操作

评论模块

发布对帖子的评论(过滤敏感词)

分页显示评论

发布对评论的回复(过滤敏感词)

权限管理(Spring Security)

未登录用户无法使用评论功能

私信模块

发送私信(过滤敏感词)

私信列表

查询当前用户的会话列表

每个会话只显示一条最新的私信

支持分页显示

私信详情

查询某个会话所包含的所有私信

访问私信详情时,将显示的私信设为已读状态

支持分页显示

权限管理(Spring Security)

统一处理 404 / 500 异常

普通请求异常

异步请求异常

统一记录日志

点赞模块

支持对帖子、评论/回复点赞

第 1 次点赞,第 2 次取消点赞

首页统计帖子的点赞数量

详情页统计帖子和评论/回复的点赞数量

详情页显示当前登录用户的点赞状态(赞过了则显示已赞)

统计我的获赞数量

权限管理(Spring Security)

未登录用户无法使用点赞相关功能

关注模块

关注功能

取消关注功能

统计用户的关注数和粉丝数

我的关注列表(查询某个用户关注的人),支持分页

我的粉丝列表(查询某个用户的粉丝),支持分页

权限管理(Spring Security)

未登录用户无法使用关注相关功能

系统通知模块

通知列表

显示评论、点赞、关注三种类型的通知

通知详情

分页显示某一类主题所包含的通知

进入某种类型的系统通知详情,则将该页的所有未读的系统通知状态设置为已读

未读数量

分别显示每种类型的系统通知的未读数量

显示所有系统通知的未读数量

导航栏显示所有消息的未读数量(未读私信 + 未读系统通知)

权限管理(Spring Security)

未登录用户无法使用系统通知功能

搜索模块

网站数据统计(管理员专属)

独立访客 UV

支持单日查询和区间日期查询

日活跃用户 DAU

支持单日查询和区间日期查询

权限管理(Spring Security)

只有管理员可以查看网站数据统计

优化网站性能

处理每次请求时,都要通过拦截器根据登录凭证查询用户信息,访问的频率非常高。因此将已成功登录的用户信息在缓存 Redis 中保存一段时间,查询用户信息的时候优先从缓存中取值;若缓存中没有该用户信息,则将其存入缓存;用户信息变更时清除对应的缓存数据;

引入本地缓存 Caffeine,缓存热帖列表和帖子的总数,避免缓存雪崩(这里面还能再加一层二级缓存 Redis)。

本地部署

先确保一下环境都已安装 Java 8、 MySQL 5.7、 Redis、 Kafka 2.13-2.7.0、 Elasticsearch 6.4.3

然后修改本地配置文件信息:

application-develop.properties:

MySQL

Spring Mail(邮箱需要开启 SMTP 服务)

Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行修改, 修改完毕后需要重启 Kafka)

Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行修改)

七牛云(需要新建一个七牛云的对象存储空间,用来存放上传的头像图片)

logback-spring-develop.xml:

LOG_PATH:日志存放的位置

需要注意的是,每次运行需要打开如下软件:

MySQL

Redis

Elasticsearch

Kafka

另外,还需要建好数据库 greatecommunity,然后依次运行项目 sql 文件夹下的这几个 sql 文件建立数据库表:

同时针对每一个功能模块,平台作者还提供了自己的思维导图,方便用户理解:

例如注册功能

登录登出功能

几乎每个功能都有,也方便小伙伴们进行理解和学习。

最后看下实际的运行效果:

预祝大家学习愉快~~~项目地址如下:

https://github.com/Veal98/Echo

TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号