FigaroBlog
FigaroBlog copied to clipboard
A Java blog system built with SpringBoot.
MyBlog - 个人博客系统
我的个人博客终于完工啦! 我已经把它部署到腾讯云上,点击这里可以直接访问,欢迎大家注册使用啊!
这是一个基于SpringBoot构建的博客系统,使用ElasticSearch作为搜索引擎,采用了Redis作缓存、存储经常变更的属性值如阅读点赞量等。
采用Redis制作了一个异步队列来进行性能优化。构建了一个消息中心,在你的博客被点赞时,系统将通过消息中心发送消息给你。
在你的账号发生异地登录事件时,将通过系统邮箱(目前暂时是我的个人邮箱,哈哈)发送邮件给你注册时记录的邮箱。
构造了一个基于HashMap的Trie树来进行敏感词过滤(根据中文特点,使用HashMap性能大大优于定长数组)。
欢迎各位在学习Java同时喜欢写博客的朋友Fork这份源码构建一个自己的博客系统哇!对一个喜欢写博客的人来说,构建一个属于自己的博客是一件非常有趣的事哦!
对这个博客系统技术点的详细介绍:
首页:热门博客排行算法,iText简历制作系统,Ajax请求局部更新数据,热门用户热门标签
博客编辑:Trie树敏感词过滤算法,输入脚本过滤
博客浏览:Markdown渲染,评论点赞模块复用,评论数据Ajax请求局部加载
登录注册模块:SpringSecurity权限验证,密码md5加盐存储,CSRFToken验证
文件传输:七牛云对象存储,七牛云图片压缩下载
消息中心:消息列表未读消息标记,点赞消息,异地登录消息
异步事件:Blog被点赞后给博主发送消息,异地登录给账号主发送邮件
访问日志:百度地图IP定位(修复本地和国外IP),验证异地登录
Redis:常用博客页面缓存,博客点赞阅读量评论数存储,异步事件队列
ElasticSearch:导航栏检索系统,首页热门用户热门标签,中文分词应用,检索权重优化 性能优化
系统部署需求
- Java版本:JDK1.8
- ElasticSearch:版本2.4,使用项目内文档创建索引blog,如果是远程服务端,推荐使用Postman发送Json数据配置
- Redis
- Tomcat
- MySQL 创建blog数据库,并设置编码为UTF-8. 配置文件中的默认用户名和密码为root和123456
- 项目内配置:邮件部分设置为自己的QQ邮箱、七牛云替换为自己的域名和Key 以上环境推荐使用Docker部署。
Quickly Start
- 项目clone到本地
- 使用Gradle bootRun编译生成war包
- 把war包部署到服务端Tomacat的webapp目录即可
Todo
- 邮件注册和登录
- 关注和粉丝功能
- 使用DoubleArrayTrie重构Trie模块,进一步优化空间占用
- 文件分片上传,多文件同时传,重复文件秒传,前端预计使用WebUploader