我的项目简介
袋鼠 bbs 是一套前后端不拆散社区零碎,基于目前支流 Java Web 技术栈(SpringBoot + MyBatis-plus + MySQL + Redis + Kafka + Elasticsearch + shiro + …)。蕴含帖子、评论、私信、零碎告诉、点赞、关注、搜寻、用户设置、数据统计等模块。
核心技术栈
后端:
- Spring
- Spring Boot
- Spring MVC
- ORM:MyBatis-plus
- 数据库:MySQL 5.7
- 分布式缓存:Redis
- 本地缓存:guava
- 音讯队列:Kafka
- 搜索引擎:Elasticsearch 7.2.0
- 平安:shiro
- 邮件工作:Spring Mail
- 日志:SLF4J(日志接口)+ Logback(日志实现)
前端:
- Thymeleaf
- Bootstrap 4.x
开发环境
- 操作系统:mac
- 构建工具:Apache Maven
- 集成开发工具:Intellij IDEA
- 接口测试工具:Postman
- 压力测试工具:Apache JMeter
- 版本控制工具:Git
- Java 版本:8
界面展现
首页:
登录页:
帖子发布页(反对 MarkDown):
帖子详情页:
个人主页:
敌人私信页:
私信详情页:
零碎告诉页:
告诉详情页:
账号设置页:
搜寻详情页:
说说列表页:
说说发布页:
🎨 性能列表
- [x] 注册
-
[x] 登录 | 登出
- 动静生成验证码
-
[x] 账号设置
- 批改头像
- 批改明码
-
[x] 帖子模块
- 公布帖子
-
分页显示所有的帖子
- 先依照热度再依照工夫进行排序
- 查看帖子详情
-
权限治理(shiro)
- 未登录用户无奈发帖
-
[x] 评论模块
- 公布对帖子的评论
- 分页显示评论
- 公布对评论的回复
-
权限治理(shiro)
- 未登录用户无奈应用评论性能
-
[x] 私信模块
- 发送私信
-
私信列表
- 查问以后用户的会话列表
- 每个会话只显示一条最新的私信
- 反对分页显示
-
私信详情
- 查问某个会话所蕴含的所有私信
- 拜访私信详情时,将显示的私信设为已读状态
- 反对分页显示
-
权限治理(shiro)
- 未登录用户无奈应用私信性能
-
[x] 对立解决 404 / 500 异样
- 一般申请异样
- 异步申请异样
- [x] 对立记录日志
-
[x] 点赞模块
- 反对对帖子、评论 / 回复点赞
- 第 1 次点赞,第 2 次勾销点赞
- 首页统计帖子的点赞数量
- 详情页统计帖子和评论 / 回复的点赞数量
- 详情页显示以后登录用户的点赞状态(赞过了则显示已赞)
- 统计我的获赞数量
-
权限治理(shiro)
- 未登录用户无奈应用点赞相干性能
-
[x] 关注模块
- 关注性能
- 勾销关注性能
- 统计用户的关注数和粉丝数
- 我的关注列表(查问某个用户关注的人),反对分页
- 我的粉丝列表(查问某个用户的粉丝),反对分页
-
权限治理(shiro)
- 未登录用户无奈应用关注相干性能
-
[x] 零碎告诉模块
-
告诉列表
- 显示评论、点赞、关注三种类型的告诉
-
告诉详情
- 分页显示某一类主题所蕴含的告诉
- 进入某种类型的零碎告诉详情,则将该页的所有未读的零碎告诉状态设置为已读
-
未读数量
- 别离显示每种类型的零碎告诉的未读数量
- 显示所有零碎告诉的未读数量
- 导航栏显示所有音讯的未读数量(未读私信 + 未读零碎告诉)
-
权限治理(shiro)
- 未登录用户无奈应用零碎告诉性能
-
- [x] 搜寻模块
-
[x] 面试模块
-
权限治理(shiro)
- 未登录用户无奈查看
-
- [x] 个人简介模块
-
[x] 与我分割模块
本地运行
各位如果须要将我的项目部署在本地进行测试,以下环境请提前备好:
- Java 8
- MySQL 5.7
- Redis
- Kafka
- Elasticsearch 7.2.0
而后 批改配置文件中的信息为你本人的本地环境,间接运行是运行不了的
本地运行须要批改的配置文件信息如下:
1)application-develop.properties
:
- MySQL
- Spring Mail(邮箱须要开启 SMTP 服务)
- Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行批改, 批改结束后须要重启 Kafka)
- Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行批改)
- 阿里云 oss(须要新建一个对象存储空间,用来寄存上传的头像图片)
2)logback-spring-develop.xml
:
- LOG_PATH: 日志寄存的地位
每次运行须要关上:
- MySQL
- Redis
- Elasticsearch
- Kafka
另外,还须要事件建好数据库 community,而后顺次运行我的项目 sql 文件夹下的这几个 sql 文件建设数据库表:
部署架构
因为体量不是太大, 单体就能够