通过一个简单的服务,整理使用的技术
服务简介
Terry部落,基于目前主流 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
- layui
开发环境
- 操作系统:mac
- 构建工具:Apache Maven
- 集成开发工具:Intellij IDEA
- 接口测试工具:Postman
- 压力测试工具:Apache JMeter
- 版本控制工具:Git
- Java 版本:8
界面展示
-
首页:
-
登录注册:
-
文章发布(MarkDown):
-
文章列表:
-
文章详情:
-
社会化分享
-
资源发布:
-
资源列表:
-
资源详情:
-
留言板:
-
工具:
-
无数据展示:
-
搜索:
-
提示:
-
个人中心:
-
个人设置:
-
接口防刷:
🎨 功能列表
- 注册
- 登录 | 登出
- 动态生成验证码
- 账号设置
- 修改头像
- 修改密码
- 文章模块
- 发布文章
- 分页显示所有的文章
- 先按照热度再按照时间进行排序
- 查看文章详情
- 权限管理(shiro)
- 未授权用户无法发帖
- 资源模块
- 发布资源
- 分页显示所有的资源
- 查看资源详情
- 权限管理(shiro)
- 统一处理 404 / 500 异常
- 普通请求异常
- 异步请求异常
- 统一记录日志
- 点赞模块
- 支持对帖子点赞
- 第 1 次点赞,第 2 次取消点赞
- 首页统计帖子的点赞数量
- 详情页显示当前登录用户的点赞状态(赞过了则显示已赞)
- 权限管理(shiro)
- 搜索模块
- 集成es实现搜索功能,针对文章title和content包含的关键字进行搜索
- 防刷
- 用户10ms内点击6次以上不再允许其进行访问该接口
- 支付宝当面付
- 个人简介模块
- 与我联系模块
- 数据统计
- 集成GeoLite实现ip解析和统计
本地运行
各位如果需要将项目部署在本地进行测试,以下环境请提前备好:
- Java 8
- MySQL 5.7
- Redis
- Kafka
- Elasticsearch 7.2.0
然后修改配置文件中的信息为你自己的本地环境,直接运行是运行不了的,而且相关私密信息我全部用 xxxxxxx 代替了。
本地运行需要修改的配置文件信息如下:
application.yml
:
- MySQL
- Spring Mail(邮箱需要开启 SMTP 服务)
- Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行修改, 修改完毕后需要重启 Kafka)
- Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行修改)
- 阿里云oss(需要新建一个七牛云的对象存储空间,用来存放上传的头像图片)
logback.xml
:
- LOG_PATH:日志存放的位置