博客网站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类了在这里插入图片描述

在这里插入图片描述

项目的用户界面

在这里插入图片描述

内容管理界面

在这里插入图片描述

后续

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode刷题】739. 每日温度(单调栈)

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 739. 每日温度 2. 题目描述 3. 解题方法 用一个栈st保存每个数的下标,同时创建一个数组res保存结果,初始值都为0。循环遍历题目中的数组temperature。如果temperature[i] > st.top()&#x…

Linux--IIC驱动编程实验

对于 I2C 主机驱动,一旦编写完成就不需要再做修改,其他的 I2C 设备直接调用主机驱动提供的 API 函数完成读写操作即可。这个正好符合 Linux 的驱动分离与分层的思想,因此 Linux内核也将 I2C 驱动分为两部分: ①、 I2C 总…

虚拟化之---virtio通信

一、理解virtio的背景 我们知道虚拟化hypervisor大的类型分为两种,全虚拟化和半虚拟化。 在全虚拟化的解决方案中,guest VM 要使用底层 host 资源,需要 Hypervisor 来截获所有的请求指令,然后模拟出这些指令的行为,这样…

Java毕设之学院党员管理系统的设计与实现

运行环境 环境说明: 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) Maven包:Maven3.3.9 系统实现 管理员功能实现 党员管理 管理员进入指定功能操作…

算法学习:二分查找

🔥 引言 在现代计算机科学与软件工程的实践中,高效数据检索是众多应用程序的核心需求之一。二分查找算法,作为解决有序序列查询问题的高效策略,凭借其对数时间复杂度的优越性能,占据着算法领域里举足轻重的地位。本篇内…

如何使用resource-counter统计跨Amazon区域的不同类型资源数量

关于resource-counter resource-counter是一款功能强大的命令行工具,该工具基于纯Python 3开发,可以帮助广大研究人员跨Amazon区域统计不同类型资源的数量。 该工具在统计完不同区域的各类资源数量后,可以在命令行中输出并显示统计结果。res…

【driver5】调用堆栈函数,printk,动态打印,ftrace,proc,sysfs

文章目录 1.内核函数调用堆栈:4个函数2.printk:cat /proc/cmdline查看consolettyS03.动态打印:printk是全局的且只能设打印等级,动态打印可控制选择模块的打印,在内核配置打开CONFIG_DYNAMIC_DEBUG4.ftrace&#xff1a…

贪吃蛇项目(小白保姆级教程)

游戏介绍 游戏背景: 贪吃蛇游戏是经典的游戏项目之一,也是很简单的小游戏 实现背景: 这里我们是基于32位的Win32_API进行实现的 需要的知识点: C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32_API等 适合人群&a…

分布式光伏管理系统和一般的光伏管理系统相比有什么区别?

随着全球对可再生能源的关注度日益提高,光伏技术作为其中的佼佼者,已经得到了广泛的应用。在光伏技术中,管理系统扮演着至关重要的角色,它关乎着光伏电站的运行效率、能源产出以及运维成本等多个方面。其中,分布式光伏…

搜索算法系列之四(斐波那契)

以下算法被验证过,如有什么问题或有补充的欢迎留言。 前言 斐波那契数列,又称黄金分割数列,是由意大利数学家(Leonardo Fibonacci)在1202年提出的。这个数列的递推关系是F(0)1,F(1)1,F(n)F(n-…

【数据库】docker搭建mysql8一主两从节点,配置proxysql读写分离

docker搭建mysql8一主两从节点,配置proxysql读写分离 一、docker 搭建 mysql8 一主两从节点1.1 相关配置文件与docker启动1.2 半同步复制1.3 主从同步异常处理 二、mysql 中间件 ProxySql 配置读写分离2.1 在mysql服务里创建给proxySQL访问的用户2.2 安装ProxySql及…

测试用例执行的结果pass_fail_block_skip

pass fail block skip 测试用例的执行结果通常包括以下几个方面: 1. **测试结果状态**:通常分为“通过”、“失败”、“阻塞”和“跳过”等状态。 - **通过**:测试用例执行完毕,预期结果与实际结果一致。 - **失败**&am…

【MySQL】——用户和权限管理(二)

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

大模型争霸的下一站:不仅是超越GPT-4,更是寻求模型之间的平衡应用

文 | 智能相对论 作者 | 沈浪 知名科学杂志《Nature》发表了一篇关于大模型规模参数大小争议的文章《In Al, is bigger always better?》——AI大模型,越大越好吗?随着大模型应用走向实践,这一问题不可避免地成为了当前AI行业发展的焦点与…

OpenGL 入门(二)—— 渲染摄像头采集的预览画面

本篇主要内容: 将摄像头采集到的图像通过 OpenGL 绘制到屏幕上FBO 离屏渲染 在开始上述流程前,我们有必要对 SurfaceTexture 做一个简单了解,因为 OpenGL 需要通过它获取要绘制的图像。 1、认识 SurfaceTexture SurfaceTexture 是 Androi…

(论文阅读-优化器)Selectivity Estimation using Probabilistic Models

目录 摘要 一、简介 二、单表估计 2.1 条件独立Condition Independence 2.2 贝叶斯网络Bayesian Networks 2.3 查询评估中的贝叶斯网络 三、Join选择性估计 3.1 两表Join 3.2 概率关系模型 3.3 使用PRMs的选择性估计 四、PRM构建 4.1 评分标准 4.2 参数估计 4.3 结…

堡垒机——网络技术手段

目录 一、简介 1.什么是跳板机 2.跳板机缺陷 3.什么是堡垒机 4.为什么要使用堡垒机 4.1堡垒机设计理念 4.2堡垒机的建设目标 4.3堡垒机的价值 4.4总结 5.堡垒机的分类 6.堡垒机的原理 7.堡垒机的身份认证 8.堡垒机的运维方式常见有以下几种 9.堡垒机其他常见功能…

基于springboot+vue+Mysql的在线动漫信息平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

大数据分析入门之10分钟掌握GROUP BY语法

前言 书接上回大数据分析入门10分钟快速了解SQL。 本篇将会进一步介绍group by语法。 基本语法 SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name HAVING condition假设我们有students表,其中有id,grade_number,class…

网络文件共享

存储类型分三类 直连式存储:DAS存储区域网络:SAN网络附加存储:NAS 三种存储架构的应用场景 DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业SAN多适用于文件服务器&#xff0c…