Skip to content

whichard/FigaroBlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyBlog - 个人博客系统

我的个人博客终于完工啦! 我已经把它部署到腾讯云上,点击这里可以直接访问,欢迎大家注册使用啊!

这是一个基于SpringBoot构建的博客系统,使用ElasticSearch作为搜索引擎,采用了Redis作缓存、存储经常变更的属性值如阅读点赞量等。

采用Redis制作了一个异步队列来进行性能优化。构建了一个消息中心,在你的博客被点赞时,系统将通过消息中心发送消息给你。

在你的账号发生异地登录事件时,将通过系统邮箱(目前暂时是我的个人邮箱,哈哈)发送邮件给你注册时记录的邮箱。

构造了一个基于HashMap的Trie树来进行敏感词过滤(根据中文特点,使用HashMap性能大大优于定长数组)。

欢迎各位在学习Java同时喜欢写博客的朋友Fork这份源码构建一个自己的博客系统哇!对一个喜欢写博客的人来说,构建一个属于自己的博客是一件非常有趣的事哦!

对这个博客系统技术点的详细介绍:

首页:热门博客排行算法,iText简历制作系统,Ajax请求局部更新数据,热门用户热门标签

博客编辑:Trie树敏感词过滤算法,输入脚本过滤

博客浏览:Markdown渲染,评论点赞模块复用,评论数据Ajax请求局部加载

登录注册模块:SpringSecurity权限验证,密码md5加盐存储,CSRFToken验证

文件传输:七牛云对象存储,七牛云图片压缩下载

消息中心:消息列表未读消息标记,点赞消息,异地登录消息

异步事件:Blog被点赞后给博主发送消息,异地登录给账号主发送邮件

访问日志:百度地图IP定位(修复本地和国外IP),验证异地登录

Redis:常用博客页面缓存,博客点赞阅读量评论数存储,异步事件队列

ElasticSearch:导航栏检索系统,首页热门用户热门标签,中文分词应用,检索权重优化 性能优化

系统部署需求

  1. Java版本:JDK1.8
  2. ElasticSearch:版本2.4,使用项目内文档创建索引blog,如果是远程服务端,推荐使用Postman发送Json数据配置
  3. Redis
  4. Tomcat
  5. MySQL 创建blog数据库,并设置编码为UTF-8. 配置文件中的默认用户名和密码为root和123456
  6. 项目内配置:邮件部分设置为自己的QQ邮箱、七牛云替换为自己的域名和Key 以上环境推荐使用Docker部署。

Quickly Start

  1. 项目clone到本地
  2. 使用Gradle bootRun编译生成war包
  3. 把war包部署到服务端Tomacat的webapp目录即可

Todo

  • 邮件注册和登录
  • 关注和粉丝功能
  • 使用DoubleArrayTrie重构Trie模块,进一步优化空间占用
  • 文件分片上传,多文件同时传,重复文件秒传,前端预计使用WebUploader

About

A Java blog system built with SpringBoot.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published