Terry部落简介

232 阅读2分钟

通过一个简单的服务,整理使用的技术

terry部落.jpg

服务简介

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

界面展示

  1. 首页: 3.首页.png

  2. 登陆注册:

1.登陆界面.png

2注册界面.png 3. 博客发布:

18文章发布页.png

  1. 博客列表

5博客.png

  1. 博文详情

6文章详情.png

🎨 功能列表

  • 「注册」

  • 「登录 | 登出」

    • 动态生成验证码
  • 「账号设置」

    • 修改头像
    • 修改密码
  • 「文章模块」

    • 发布文章

    • 分页显示所有的文章

      • 先按照热度再按照时间进行排序
    • 查看文章详情

    • 权限管理(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 代替了。

本地运行需要修改的配置文件信息如下:

  1. application.yml:
  • MySQL
  • Spring Mail(邮箱需要开启 SMTP 服务)
  • Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行修改, 修改完毕后需要重启 Kafka)
  • Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行修改)
  • 阿里云oss(需要新建一个七牛云的对象存储空间,用来存放上传的头像图片)
  1. logback.xml:
  • LOG_PATH:日志存放的位置