Skip to content
HaoMaGitPublic

About

SpringBoot+Vue3+Redis+Mysql+Redis+RabbitMQ+Minio+ MongoDb的前后端分离的个人博客项目 项目成就播放量19w+4000+收藏

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Hao的个人博客

项目介绍 🔥

  • 此项目是基于 SpringBoot2 + Vue3开发的前后端分离的个人博客项目
  • 项目成就 访客量2500+ 请求量21000+
  • 哔哩哔哩19万播放 4000+ 收藏
  • 此项目代码写的比较小白 比较冗余 只提供技术业务的提升以及界面的灵感设计

技术收获 🔨

  • 使用Redis进行缓存常用的数据提高响应减轻数据库压力
  • 使用MongoDb存储留言数据减轻数据库压力
  • 使用ElementPlus快速开发组件页面美观
  • 使用Md-editor-v3编辑器使文章变得美观
  • 使用Danmaku-vue实现留言板的弹幕效果
  • 使用Minio进行图片存储免费好用
  • 使用Elasticsearch用于文章的存储以及实现搜索和高亮的效果
  • 使用Rabbitmq异步通知处理各种操作实现友链的申请
  • 使用SpringAop面向切面编程来进行接口访问量的数据统计
  • 使用Echarts图表来快速的预览数据
  • 使用SpringTask定时任务来进行将每天统计数据写入数据库
  • 使用Mybatis-Plus快速的CRUD开发
  • 使用Aws-java-sdk-s3亚马逊和Minio配合进行视频的分片上传
  • 使用Easyexcel技术快速的将excel数据导入导出

运行环境

前台前端(博客): Vue3+ Element Plus + Echarts + Md-editor-v3.+ Danmaku-vue + Vue-video-player.......

后台前端(管理): Vue3+ Element Plus + Echarts + Md-editor-v3 ……

后端: JDK17 + SpringBoot2 + SpringAop + SpringTask + Elasticsearch+ Mysql+ Redis + MongoDb + RabbitMQ + Minio + Mybatis-Plus + Easyexcel + aws-java-sdk-s3 + Nginx + Docker……

前端

以下需要版本要求其他技术版本新一点就可以

名称 环境
Npm 10+
Vue3 3+
Node 17+
后端

以下需要版本要求其他技术版本新一点就可以

名称 环境
MySQL 8.0+
JDK 17
SpringBoot 2
Elasticsearch 7.2.1
Easyexel 3.0.1

项目效果 👀

哔哩哔哩视频效果演示地址:https://space.bilibili.com/1680425641?spm_id_from=333.788.0.0

前台

输入图片说明 输入图片说明

输入图片说明

后台

输入图片说明

输入图片说明

项目地址 ⭐

前台博客:http://blog.haoyuming.top

后台管理: http://admin.haoyuming.top:8888

使用事项 📔

  • 服务器是2核2G1M比较垃圾可以项目捐赠一下哦
  • 随时可能崩掉发现了会及时维护
  • 免费使用 大家随意发挥
  • 后续网站访问不了以及长期没更新的话就是没钱啦
  • 如有安装问题请联系作者
联系方式

QQ: 3655161743

WX: H9498426

交流群码

输入图片说明

项目启动 📔

前台

vue3-blog-web文件夹

npm install || npm run dev
npm run dev
后台

vue3-blog-admin文件夹

npm install || npm run dev
npm run dev
后端

java-blog-system文件夹

  • 后端分为两个服务一个对应web端一个admind端
  • 打开项目 配置jdk 加载maven依赖
  • 安装mysql redis mq es mongoDb minio
  • 将sql文件夹中的sql放入到你的数据库中
  • 安装完minio后需要创建blog桶并开放public权限
  • 安装es后还需要配置分词器
  • 配置完分词器需要创建索引结构
curl -X PUT "http://localhost:9200/article" -H 'Content-Type: application/json' -d'  
{  
  "settings": {},  
  "mappings": {  
    "properties": {  
      "id": {  
        "type": "long"  
      },  
      "title": {  
        "type": "text",  
        "analyzer": "standard"  
      },  
      "describe": {  
        "type": "text",  
        "index": false  
      },  
      "categoryName": {  
        "type": "keyword"  
      },  
      "labelName": {  
        "type": "keyword"  
      },  
      "cover": {  
        "type": "keyword",  
        "index": false  
      },  
      "status": {  
        "type": "integer"  
      },  
      "sort": {  
        "type": "integer"  
      },  
      "hot": {  
        "type": "integer"  
      },  
      "content": {  
        "type": "text",  
        "analyzer": "standard"  
      },  
      "createTime": {  
        "type": "date"  
      },  
      "updateTime": {  
        "type": "date"  
      }  
    }  
  }  
}'
  • 安装mongoDb完成后打开可视化界面需要先使用
use blog 来创建数据库
  • 在TODO的地方修改你的配置文件
server:
  servlet:
    context-path: /api
  port: 9779
      // TODO:mysql的配置
spring:
  datasource:
    driver-class-name:
    url: jdbc:mysql://127.0.0.1:3306/blog-admin?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456
        // TODO:redis的配置
  redis:
    host: 127.0.0.1
    port: 6379
    password: 123456
        // es的配置
  elasticsearch:
    uris: 127.0.0.1:9200
        // mongoDb配置如果上线到服务器中需要配置密码防止被黑
  data:
    mongodb:
      field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy # 自动转驼峰
      host: 127.0.0.1
      port: 27017
      database: blog
#      password:
#      username:
		// TODO:mq的配置
  rabbitmq:
    port: 5672
    host: 127.0.0.1
    username:
    password:
    publisher-confirm-type: CORRELATED # 消息确认模式
    publisher-returns: true # 消息无法路由回调
    listener:
      simple:
        prefetch: 1
        concurrency: 3
        acknowledge-mode: manual # 手动确认
mybatis-plus:
  configuration:
    # 在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志
  global-config:
    db-config:
      id-type: ASSIGN_ID # 使用手动指定ID的方式。也就是说,当你插入数据时,需要手动为实体类中的ID属性设置值。
	// TODO:minio的配置
minio:
  # MinIO服务器地址
  endpoint: http://127.0.0.1:9000
  # MinIO服务器访问凭据
  accessKey: 
  secretKey: 
  # MinIO桶名称
  bucket: blog
  # MinIO读取路径前缀
  readPath: http://127.0.0.1:9000

项目问题 🧩

1.图片加载太慢

2.上传图片没做限制

3.以及一些数据统计没做好

4.没有响应式

项目捐赠 🍵

觉得做的还可以 对你的灵感和技术业务有帮助的话以及喜欢这个项目的可以通过以下方式支持我:

  • Star和Fork
  • 哔哩哔哩视频一键三连支持
  • 通过微信、支付宝一次性打赏或捐赠作者 谢谢各位大哥赏饭吃 你的鼓励 是我最大的动力
微信 支付宝
输入图片说明 输入图片说明

后续计划 📚

  • 主要编写uni-app+vue3代码
  • 后续项目会集成AI相关
  • 项目只从0到1编写
  • 后端编写SpringCloud微服务项目
  1. 从0到1一个月内完成仿哔哩哔哩移动端以及网页端预计7.30上线
  2. 自研校园内项目会集成AI目前没有啥思路

About

SpringBoot+Vue3+Redis+Mysql+Redis+RabbitMQ+Minio+ MongoDb的前后端分离的个人博客项目 项目成就播放量19w+4000+收藏

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages