基于 Springboot Vue 快速构建轻量级实用的博客系统

小夏 科技 更新 2024-02-05

去年7月,一想到我有备用服务器放在那里就是一种浪费,而我恰好有域名备案,所以我考虑在公共网络上部署一个博客系统。 于是我去了github,找到了一个看起来比较好的开源博客项目,这个项目的技术栈和现在主流的互联网应用架构是一样的,比如用SpringCloud微服务、中间件、ES等。

但是部署起来非常困难,这个项目大约有5个微服务,更不用说ES这样的中间件了,在我自己的服务器(1核2G)的配置下,这显然是不可行的。

因此,我决定编写自己的轻量级博客系统,该系统可以用最少的资源进行部署,而不会丢失功能。

tip以下是我用 SpringBoot+Vue 搭建的轻量级博客源码,有兴趣可以自己获取。

// git**。

本博客项目在功能上分为后台管理端和前端用户端,管理端主要负责维护博文、查看用户范围行为等,用户端主要用于展示博文并提供用户交互功能(点赞、评论等)。

预览地址:单页博客。

博客主页

博客详细信息

点赞评论

管理员输入账号密码后,即可进入管理页面

在博客管理菜单下,有文章、主题、标题和类别管理

在文章管理下,我们首先创建文章并设置标题和类别等基本信息

然后,在列表页,双击标题进入文章详情编辑页面,对文章进行编辑预览

还有一个专门的菜单,用于博客的用户行为日志

博客的技术架构采用前后端分离,前端页面基于 Vue+element-ui 组件库进行开发、编译和打包,服务端使用 Springboot 框架进行自动化配置,按需引入入门组件,实现业务功能逻辑开发。

前后端独立,相互依存,降低开发部署影响风险,提高开发效率。

前端页面独立使用 vue+element-ui

后端采用m**en+springboot,按照功能模块进行分层设计,虽然目前打包为单体项目,但方便在需要时独立部署

博客详细信息内容编辑使用开源且功能强大的富文本编辑器 wangeditor(5.)。1.23)

Wangeditor5 是一款基于 j**ascript 开发的 Web 富文本编辑器,多达 20 个常用功能,简单易用,易于维护,提供扩展插件、上传服务等相关资源,让我们在开发过程中可以更好的使用。

博客管理端的资源权限认证框架使用SpringSecurity+OAuth2+JWT框架。 SpringSecurity 是 Spring 框架的安全框架,用于提供身份认证和授权功能,使用 OAuth2 实现认证服务器统一发放认证令牌,主要用于单点登录(SSO),生成令牌的数据格式使用 JWT,具有可靠性和自验证性。

tip我已经封装了SpringSecurity + OAuth2 + JWT作为入门,我只需要介绍一下对应的服务器CION就可以使用了,有兴趣可以自己获取。

// git**。

该项目的业务比较简单,主要是查询,比如查询详情页、列表页,显然系统的主要性能瓶颈是数据库QPS,所以我决定使用二级缓存(Redis+本地缓存),市面上已经有比较流行的框架JetCache了。

Jetcache是阿里巴巴集团基于Spring和Redis的开源分布式缓存框架,其主要特点包括:基于注解、多级缓存、高性能、易用性。

直接在所需方法上添加缓存的注释@cached

要运行项目,我们需要提前安装 jdk (1.)8)、mysql(>=5.7) Redis、nginx(静态资源**)第二种是将编译好的静态资源和功能服务jar文件打包到服务器。

这里用的是docker安装,具体安装过程在本文中不再赘述对管理 UI 的更改。 env.production 文件,然后运行 npm 命令将其打包

用户 UI 更改。 env.production 文件,然后运行 npm 命令将其打包

将编译打包好的静态文件上传到服务器首页对应目录下,配置nginxconf**

server 

客户端 UI。

location ^~/webui

在本地执行MVN Clean Install命令,将JAR文件编译打包并上传到服务器nginx.配置conf接口,执行j**a -jar命令启动j**a程序

server 

客户端接口。

location ^~/api

j**a -jar -xms300m -xmx300m yeee-app-bootstrap-1.0.0-snapshot.jar >./startup-blog.log&

至此,我已经通过功能介绍、技术架构和部署流程,完全介绍了我的开源轻量级博客系统,如果有任何问题可以在评论区交流,也可以去 github 提交 PR 或者问我问题,谢谢大家的支持。

tip以下是我用 SpringBoot+Vue 搭建的轻量级博客源码,有兴趣可以自己获取。

// git**。

相似文章

    基于Java SpringBoot和Vue的医院信息管理挂号系统

    总结 医院信息管理系统 HIMS 是应用于医疗机构的信息管理系统,旨在提高医疗服务质量,降低运营成本,提高工作效率,满足患者需求。通过对医院内各种信息的整合 管理和共享,实现医疗资源的有效利用和优化配置。HIMS的实施和应用,将有助于提高医院的管理水平,提高医疗服务质量,降低医疗成本,实现医疗资源的...

    基于 Prometheus Grafana 4 设置 IT 监控和告警的最佳实践

    看到像面孔一样的文字,大家好,我是小飞,上一篇文章介绍了发电机YML 文件配置和 prometheusYML文件配置,包括文件服务自动发现机制,以及基于生成器YML配置,根据SNMP导出器提供的生成器,生成SNMPYML配置文件等,今天主要讲解官方环境的配置和情况,包括虚拟机节点导出器节点数据采集器...

    基于 Prometheus Grafana 3 设置 IT 监控和告警的最佳实践

    大家好,我是小飞。延续上一部分,主要讲解配置文件的用途和说明,上一部分链接如下 Prometheus Grafana 构建 IT 监控和告警最佳实践 扩展交换机的数据采集,因为节点导出器采集器完善,使用官网模板采集数据基本满足当前需求,没有定制需求,而且Grafana的面板在Grafana官网上也有...

    基于Python Flask MySQL的后台权限管理系统

    基于 Python flaskmysql之后台权限管理系统。该项目主要依赖 django mysqlbootstrap基于Python Flask MySQL的后台权限管理系统,用于对系统登录用户的权限进行管理和区分。在 python 中.测试通过,项目包含需求文件,方便环境迁移。可以使用数据库操作...

    基于Transformer模型的长文本生成研究

    随着神经网络的快速发展,Transformer模型作为一种基于注意力机制的深度学习习模型,在长文本生成任务的自然语言处理领域崭露头角。本文将介绍基于Transformer模型的长文本生成,重点介绍其在语义理解和创造性表达中的应用。从单词到句子再到文本,Transformer 模型学习语言 习 的结构...