• Stars
    star
    243
  • Rank 166,489 (Top 4 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created about 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

莫提博客(moti-blog)是一个基于 SpringBoot 开发的标准 Java Web 项目。项目中应用了 SpringBoot、MyBatis、Redis、RabbitMq、ElasticSearch、BootStrap、Thymeleaf 等技术。项目页面美观大气,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 SpringBoot 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。

注意

你需要修改的地方:

  • qqconnectconfig.properties
  • com.moti.config.ElasticSearchConfig
  • com.moti.config.GiteeImgBedConfig
  • resources/application.yml

前言

哈喽大家好,我是莫提。最近新写了一个非常简约的个人博客系统。用了差不多快一个月吧(中间肯定有划水摸鱼的时间,哈哈)。这次的项目用了几个我之前没有用过的技术,也成功结合并实现了我的一些想法。个人觉得也是非常适合于初学者学习!

主要功能

文章方面

首先既然是个人博客系统,肯定要对写文章有一个非常友好的支持!不然感觉只好看不实用也是扯淡。不得不说现在使用MarkDown写文章的人是越来越来。哈哈,这篇文章其实也是用MarkDown写的!

在写文章方面,我开发的个人博客同样支持MarkDown的语法,使用的是目前一个比较好用的编辑器叫EditMd

在这个系统里面写的文章,把原文复制一下,就可以在任何支持MarkDown的文章轻松的发表,不需要改任何格式,也不需要重新上传图片。为什么嘞?因为我直接使用了码云当做我这个项目的图床(对外提供图片链接,通过链接就可以访问到这张图片)。这样如果之后再开发一个备份的功能就非常方便了!

为了更加友好的写博客,我自己还新增了从剪切板复制图片到输入框实现图片的粘贴上传。哈哈,我觉这个功能是很多个人开发的博客系统不具备的。

之后我还开发了一些作为博客系统必须具备的功能,比如编辑、存草稿、回收站、文集(文章分类)、标签、文章归档等等。这些功能其实和一般的博客系统都差不多,没啥好说的。

关于文章评论,读者看到后填写基本的信息之后就可以发表评论了。

后台可以对评论进行管理,比如查看、删除、回复这些,回复的时候可以选择是否向用户填写的邮箱发送回复邮件,及时通知留言者。

评论管理

查看与回复

发送邮件内容

在前提主页有一个站内搜索,访客可以在这里根据关键词搜索文章!之后的搜索结果也会高亮显示!这里用到了ElasticSearch搜索引擎,配置了好用的IK分词器之后搜索的结果会更加的准确!

用户方面

首先是登录,设计了两种登录方式,一个是用户名和密码,一个是QQ登录。诶?有的人可能很奇怪了,这怎么能用QQ登录呢?其实这个应该叫做绑定QQ,如果之前数据库里面没有QQ用户的信息,那么第一次登录的时候就将这个QQ的信息写到数据库实现绑定的功能,这应该叫先入为主

之后用户可以修改个人资料,直接上图吧~

上传完微信二维码和公众号二维码,之后可以在前台主页进行显示。

定时统计

项目中引入了Redis,我们就可以方便进行统计了,比如文章的阅读量,我只是简单的设计了刷新一次页面就算一次阅读。在没有引入Redis之前我是每次刷新,就更新数据库!非常不推荐! 现在我们就把今天的阅读量放到Redis中,然后写一个定时任务,把Redis中的数据写到数据库,这绝对算是一种优化吧~

定时任务

同样的原理,我们需要统计访客信息,统计访客的阅读记录与阅读次数(其实就是后台的访问与访客)。我们需要记录访客的IP地址和访问的文章以及阅读次数等等。其实这里我想把访客统计做的更加细致,能根据IP获取到地址的那种,但是找了几个免费的API,淘宝就有一个,能用是能用,但是访问的次数多了就获取不到数据了,哎,后来我就把这个功能删掉了,做成了现在比较简单的版本。

站点装扮

这里就比较简单了,直接上图~

主页部件

这个前台主页我是想做的既美观又实用,额,只能做成这样了,来个效果。

侧边开发了公告、本地天气、站内搜索、热门文章、标签云、文集、文章归档、友情链接、访客统计等。

阅读文章页面时长这样的

技术栈

主要功能上面已经说得差不多了,现在来讲讲这个项目用到了哪些技术。

前端

名称 技术点
基础 Html、Css、JavaScript、Jquery
UI框架 BootStrap
文本编辑器 EditMd
前台模板 Olympus
后台模板 Pike Admin

前台模板和后台模板我都已经上传到了我的QQ交流群。喜欢的可以去下载一波~

后端

名称 技术点
开发 SpringBoot、MyBatis
数据库 MySQL 5.7 + Druid
缓存 Redis + EhCache
消息队列 RabbitMq
搜索引擎 ElasticSearch
其他 邮件任务、定时任务、QQ登录、Lombok、Jrebel、码云API

项目难点

项目使用到了ElasticSearch搜索引擎,后台在对文章进行修改、删除时更新数据库的同时需要更新ElasticSearch,如果使用串 行修改会很影响效率。难点在于在不影响系统性能的情况下保证MySQL与ES的数据一致性。

解决

编写定时任务每天0点对ES进行数据重建,在文章做出更新后使用RabbitMq消息队列推送更新/删除的消息,分析场景最后我 使用了RabbitMq的Topic模型。编写更新消费者和删除消费者,使用同一个交换机,匹配不同的key对消息进行消费,实现对 ES中的数据进行同步。

结语

最后最后,决定把此项目开源!附上项目的Github地址😊。喜欢的话一定别忘了给我颗⭐。

More Repositories

1

moti-cloud

莫提网盘(moti-cloud)是一个基于 SpringBoot 开发的标准 Java Web 项目。存储模式支持 FTP、阿里云 OSS 对象存储。项目选题新颖,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 SpringBoot 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
552
star
2

smart-medicine

智慧医药系统(smart-medicine)是一个基于 SpringBoot 开发的标准 Java Web 项目。整体页面非常的简约大气,整合了目前非常火爆的 AIGC 生成式 AI(选用的阿里的通义千问大语言模型)技术充当智能医生,以此提升系统的 B 格,整体来看是一个偏向百科查询类的系统,功能设计的较为简单,便于初学者理解和学习,也适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
233
star
3

molihub

博客论坛系统(molihub)是一个基于 Spring、SpringMVC、JDBCTemplate、JSP 开发的 Java Web 项目。项目页面美观大气,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
167
star
4

verio-house

房屋租赁系统(verio_house)是一个基于 SSM 开发的标准 Java Web 项目。整体页面非常的简约大气,项目的完整度较高。非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
109
star
5

love-charity

爱慈善公益平台(love-charity)是一个基于 SpringBoot 开发的标准 Java Web 项目。整体页面非常的简约大气,项目的完整度较高,是一个偏向公益论坛的系统。非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
49
star
6

academic-report

智慧高校学术报告系统(academic-report)是一个基于 SpringBoot 开发的标准 Java Web 项目。系统整体页面设计简约大气,巧妙融合了目前备受瞩目的 AIGC 生成式 AI 技术,选择了阿里通用千问大语言模型,以智能生成趣味报告标题和润色报告内容等方式,提升系统的整体品味。系统涵盖了丰富的 Excel 表格操作功能,支持信息的高效导入和导出。整个系统设计完善,内置了复杂的审核流程,旨在为高校提供一套信息化管理的优质解决方案。该系统不仅易于初学者理解和学习,而且在学校项目答辩和毕业设计等场景中表现出色。
Java
41
star
7

su-share

素材分享网(su-share)是一个基于 SpringBoot 开发的标准 Java Web 项目。项目页面美观大气,完成度较高,前后端不分离的单体架构,集成阿里云 OSS 对象存储素材文件,图片封面上水印,非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩或者毕业设计。喜欢的话记得帮忙点亮 Star,不求打赏,免费分享,只求你一个免费的👍,你的支持是我做下去的动力。
Java
33
star
8

kaka-shop

咖咖商城(kaka-shop)是一个基于 SpringBoot 开发的标准 Java Web 项目。系统整体页面设计简约精美,交互新颖,是一款制作精良的服务于咖啡爱好者的商城系统。该系统不仅易于初学者理解和学习,而且在学校项目答辩和毕业设计等场景中表现出色。
Java
26
star
9

login-system

SpringBoot 整合多种登录方式,目前已整合邮件验证码登录、手机验证码登录、QQ 第三方登录、微博第三方登录、人脸登录。非常适合新手学习!喜欢的话别忘了右上角加个🌟~
Java
17
star
10

xw-fast

XwFast 是专为 Java Web 开发的基于 Spring 系列框架封装的黑科技脚手架,通过诸多实用工具类/组件的使用,旨在帮助开发者快速、便捷地完成各类开发任务。这些封装的工具组件涵盖了基础增删查改接口、邮件客户端、短信客户端、等一系列操作,可以满足各种不同的开发需求。
Java
15
star
11

373675032

4
star
12

xw-fast-demo

XwFast 官方示例项目
Java
2
star
13

xw-web-demo

使用 xw-web 脚手架开发的 SpringBoot 测试项目
Java
1
star
14

xw-web

基于 SpringBoot 开发的超级便捷的脚手架!编写接口超方便!配合 EasyCode 代码生成插件,鼠标点几下,无须编写任何代码。
Java
1
star