博客网站SpringBoot+Vue项目练习

博客网站SpringBoot+Vue简单案例

前言

学了vue后一直没用找到应用的机会,在Github上找到了一个看起来比较友好的项目(其实具体代码我还没看过)。而且这个项目作者的readme文档写的也算是比较好的了。

项目链接:https://github.com/rawchen/Blog


该项目主要运用技术

  1. 核心框架:Spring Boot
  2. 安全框架:Spring Security
  3. Token 认证:jjwt
  4. 持久层框架:MyBatis
  5. 分页插件:PageHelper
  6. NoSQL缓存:Redis
  7. Markdown 转 HTML:commonmark-java
  8. 离线 IP 地址库:ip2region
  9. 定时任务:quartz
  10. UserAgent 解析:yauaa

项目外部文件夹解析

在这里插入图片描述

根目录下的子目录:
blog-api:这是博客API服务的代码目录,包含了API接口的开发文件。
blog-cms:这是博客内容管理系统(CMS)的代码目录,用于管理博客文章和页面等内容。
blog-view:这是博客前端展示的代码目录,负责将博客的内容呈现给用户。
独立文件:
blog.sql:这是一个数据库脚本,用于创建或更新博客的数据库。
README.md:这是一个标记为“MD”的Markdown文档,提供了关于该项目的基本信息和使用指南。
日志文件:
log:这是一个日志文件夹,里面可能包含了项目运行时的日志文件,用于错误跟踪和性能监控。


API内部软件包视图解析

在这里插入图片描述

先跑跑试试

这个项目时刚从github上扒下来是无法正常跑起来的,因为还需要本地的数据库和脚手架搭建协同完成才能正常运行。

连接本地数据库

因为这个项目本身就有Maven加载,所以不用考虑数据库驱动程序版本的差异,这个IDEA也会自动下载正确驱动版本,你只需要配置好你的用户还有密码。
在这里插入图片描述
然后在application-dev.properties 进行数据库用户名和用户密码的配置,还有一个要注意的问题时,代码刚拿下来的时候的属性文件编码可能并不是UTF-8的,而是一个叫ISO-啥啥的,那个编码是无法正常写入中文的,要自己在设置中,查找文件编码设置,然后把属性文件默认编码改成UTF-8。
在这里插入图片描述
在这里插入图片描述


运行SQL语句

作者很贴心地为我们提供了创建数据库的表格以及一组初始数据,在blog.sql文件中。不过要注意的是,我们要先自己创建一个数据库,我创建的数据库名就叫blog,文件里的语句只是创建表格并提供一组初始数据,并且我不太建议在IDEA里面执行这些语句,还是SQLyog等比较方便。
在这里插入图片描述
运行完SQL语句后共有19个表,其实有没有全部成功我也没太注意。
在这里插入图片描述


脚手架搭建

在这里插入图片描述
这个项目主要有一个后台管理界面blog-cms,还要一个用户使用界面blog-view,所以我们要需要在这两个文件夹都进行一次操作。
右键打开于终端(前提是已经安装好了node.js环境)
执行命令

npm install

npm(node package manager):node.js 的包管理器,用于node插件管理(包括安装、卸载、管理依赖等) ,npm 是随同 node.js 一起安装的包管理工具,能解决 node.js 代码部署上的很多问题。

备注:如果是很久之前就安装了node.js并且当时改的镜像地址是淘宝的话,可能会出现证书过期的报错。
一般有更换镜像地址,清楚缓存和忽略SSL验证(可能会使计算机更容易受到攻击)。
前面一种方法较为推荐,但是我执行一系列命令后还是证书过期,所以干脆选了后者。
方法一:

#最新地址 淘宝最新的镜像
npm config set registry https://registry.npmmirror.com
#清楚缓存,会给出警告,不过没事
npm cache clean --force

方法二:

# 不做验证
npm config set strict-ssl false

然后是

npm run serve

这里也可能有一个报错,主要是新版本的允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.
在node.js V17以前一些可以正常运行的的应用程序,但是在 V17 版本可能会抛出这个异常。
具体可参考博文
digital envelope routines::unsupported

在这里插入图片描述
在这里插入图片描述
最简单的解决办法
找到npm install成功后的package.json文件,然后加入一段配置
在这里插入图片描述
注意加配置时,前面的逗号哦

"scripts": {
    "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
  }

还有Redis的安装

那个基本是傻瓜式安装,具体可参考博文Redis安装


准备运行

在两个文件夹的命令都执行好后的情况下,我们就可以启动BlogApiApplication类了在这里插入图片描述

在这里插入图片描述

项目的用户界面

在这里插入图片描述

内容管理界面

在这里插入图片描述

后续

今天刚把这个项目看了一下,真心觉得不错,后续我会试着读懂里面具体的代码,以及作者的设计思路,并复现这个项目的基础上加点自己的小东西。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/595963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 Linux 自建怀旧游戏之 - 80 款 H5 精品小游戏合集

1)简介 最近又找到了一款宝藏游戏资源分享给大家,包含 80 款 H5 精品小游戏,都是非常有趣味耐玩的游戏,比如 植物大战僵尸、捕鱼达人、贪吃蛇、俄罗斯方块、斗地主、坦克大战、双人五子棋、中国象棋 等等超级好玩的 H5 小游戏&…

ai续写软件哪个好?盘点3款经典好用的!

随着科技的不断发展,AI续写软件逐渐成为了许多内容创作者、学生、研究人员等的得力助手。这类软件能够通过机器学习和自然语言处理技术,为用户提供高质量的文本续写服务。但市场上众多的AI续写软件让人眼花缭乱,那么,究竟哪款AI续…

0506_IO1

思维导图: 练习: 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry_score; double bio_score; }; 申请该结构体数组,容量为…

AVL树浅谈

前言 大家好,我是jiantaoyab,本篇文章给大家介绍AVL树。 基本概念 AVL树(Adelson-Velsky和Landis树)是一种自平衡的二叉搜索树,得名于其发明者G. M. Adelson-Velsky和E. M. Landis。在AVL树中,任何节点的…

活动回放 | 如何进行全增量一体的异构数据库实时同步

以 AI领域为代表的新技术不断涌现,新的应用风口也逐渐清晰。为了加紧跟上技术发展的步伐,越来越多的企业开始着手,对仍以传统关系型数据库为主的应用后端进行现代化升级。 这就涉及到如何在不影响并保持现有业务系统正常运转的前提下&#xf…

专注 APT 攻击与防御—基于UDP发现内网存活主机

UDP简介: UDP(User Datagram Protocol)是一种无连接的协议,在第四层-传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后&#xf…

Android 状态栏WiFi图标的显示逻辑

1. 状态栏信号图标 1.1 WIFI信号显示 WIFI信号在状态栏的显示如下图所示 当WiFi状态为关闭时,状态栏不会有任何显示。当WiFi状态打开时,会如上图所示,左侧表示有可用WiFi,右侧表示当前WiFi打开但未连接。 当WiFi状态连接时&#x…

SpringBoot整合rabbitmq使用案例

RocketMQ(二十四)整合SpringBoot SpringBoot整合rabbitmq使用案例 一 SpringBoot整合RocketMQ实现消息发送和接收消息生产者1)添加依赖2)配置文件3)启动类4)测试类 消息消费者1)添加依赖2&…

python 中如何匹配字符串

python 中如何匹配字符串? 1. re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 import re line"this hdr-biz 123 model server 456" patternr"123" matchObj re.matc…

iconfont_vue小程序中使用

1.前三步就是简单下载&#xff0c;详细可看这篇 vue管理系统导航中添加新的iconfont的图标-CSDN博客 2.引用有点区别&#xff1a;在App中引用 3.uni-icons写法 <uni-icons custom-prefix"iconfont" type"icon-zhengjian" size"23"></un…

情感视频素材怎么来的?8个视频素材库免费下载安装

在今天这个视觉内容对于连接和影响观众至关重要的时代&#xff0c;选择适合的视频素材变得极为关键。优质的视频素材可以极大提升您的内容质量&#xff0c;无论是在增加社交媒体的吸引力、提升商业广告的效果&#xff0c;还是丰富教育材料的表现力。以下是一些全球顶级的视频素…

基于 Llama-Index、Llama 3 和 Qdrant,构建一个 RAG 问答系统!

构建一个使用Llama-Index、Llama 3和Qdrant的高级重排-RAG系统 尽管大型语言模型&#xff08;LLMs&#xff09;有能力生成有意义且语法正确的文本&#xff0c;但它们面临的一个挑战是幻觉。 在LLMs中&#xff0c;幻觉指的是它们倾向于自信地生成错误答案&#xff0c;制造出看似…

Stateflow基础知识笔记

01--Simulink/Stateflow概述 Stateflow是集成于Simulink中的图形化设计与开发工具&#xff0c;主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真&#xff0c;或者说&#xff0c; Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用&#…

一个年薪30w软件测试员的职业规划,献给还在迷茫中的朋友

先抛出一个观点 &#xff0c; 那些&#xff0c;担心30岁后&#xff0c;35岁后&#xff0c;40岁后&#xff0c;无路可走的&#xff1b;基本属于能力不够、或者思维太局限 。 总之&#xff0c;瞎担心 / 不长进 。 具体&#xff0c;见下面正文 。 曾经&#xff0c;在16年&#xff…

开发环境待

一 web开发环境搭建 1 web开发环境概述 所谓web开发,指的就是从网页中向后端程序发送请求.与后端程序进行交互. 流程图: 1,Web服务器是指驻留于因特网上某种类型计算机的程序. 2, 可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界 浏览…

JWK和JWT 学习

JWK和JWT 介绍 JWK (JSON Web Key) 和 JWT (JSON Web Token) 是现代Web应用程序中用于安全通信的两个重要概念。它们都是基于JSON的&#xff0c;并且是OAuth 2.0和OpenID Connect等协议的核心组成部分。 官方文档 JWT官方网站 JWK和JWK Set的RFC文档 JWT的RFC文档 JWK (JS…

16_Scala面向对象编程_函数

文章目录 1.声明Scala函数2.访问伴生对象3.空对象直接用的方法4.构造对象--通过object获取单例对象--直接new--scala独有apply()方式--scala有参构造--scala构造方法两大类使用辅构造如下上述代码主构造为辅助构造方法甚至可以多个多个辅助构造形参内容不能重不使用辅助构造和使…

【ACM出版】第四届控制与智能机器人国际学术会议(ICCIR 2024)

第四届控制与智能机器人国际学术会议&#xff08;ICCIR 2024&#xff09; 2024 4th International Conference on Control and Intelligent Robotics 2024年6月21日-23日 | 中国-广州 官网&#xff1a;www.ic-cir.org EI、Scopus双检索 投稿免费参会、口头汇报及海报展示 四…

ROS仿真小车与SLAM

ROS仿真小车与SLAM ROS中机器小车的仿真实验一、建立模型1.创建功能包导入依赖&#xff1a;创建urdf,launch文件&#xff1a; 2.可视化 二、添加雷达传感器1.编写xacro文件2.集成launch文件3.添加摄像头和雷达传感器my_camera.urdf.xacro文件&#xff1a;my_laser.urdf.xacro文…

easy_signin_ctfshow_2023愚人杯

https://ctf.show/challenges#easy_signin-3967 2023愚人杯信息检索&#xff0c;在请求荷载中发现一个base64 face.pngencode ZmFjZS5wbmc解密结果 flag.pngencode ZmxhZy5wbmc尝试一下 返回内容 Warning: file_get_contents(flag.png): failed to open stream: No such file…