一、项目理解
(一)SmartAdmin V2项目的理解
个人对项目的理解
SmartAdmin V2是基于springboot和vue等计算机技术的快速开发平台,是一个拥有完整功能的前后端分离的开源项目。该项目对使用者友好,整体架构清晰,本次项目实现难点是运行环境的配置和在实现过程中的问题解决。考验我们对问题的搜索,解决方案理解,动手能力以及探索思维。
在实现过程中,我对接触过的内容的理解是:MySQL是本项目的信息存取单元,Maven是为本项目提供运行所需的环境和插件,Rides具有信息读取的作用,没有它验证码无法正常显示,前端和后端有一种技术相连接,后端不启动的情况下前端无法正常启动,会报“网络连接错误”。
通过网络对项目的理解
Maven 是专门用于构建和管理Java相关项目的工具。使用Maven管理的Java 项目都有着相同的项目结构,便于统一维护jar包。
Rides是一个完全开源免费的key-value内存数据库 。通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。
Vue ,是尤雨溪于2014年发布的一个前端框架,是一套用于构建用户界面的渐进式 javascript 框架,是国内比较流行的前端框架之一,占的市场份额最大,容易入门,可以和第三方库或者已有的项目进行整合,可以做复杂的单页应用。
(二)个人对前后端的理解:
前端:就目前前端开发技术课程的学习,前端主要有HTML,CSS以及JavaScript。其中HTML是对web页面主体内容进行编辑,CSS则是对主题进行修饰,如排版、字体样式、形状等等,JavaScript目前没学,但是我感觉它就是给予主体内容运动和对一定条件做出反应。
后端:我没学过但通过SmartAdmin V2项目的实现和个人理解猜测,我认为后端是对收集的所需信息进行存储,为前端提供信息读取,对前端发过来的信息进行资源调取和程序处理。
总体来看,我认为前后端就像一个人,前端描绘出一个人的外表,后端给予身体对外界做出感知和行动的能力
二、SmartAdmin V2实现的问题及解决思路
(一)后端部分运行显示 Public Key Retrieval is not allowed
解决思路:
方法一:通过网络搜索得将代码添加到url处
allowPublicKeyRetrieval=true
过程:找到文件sa-common.yaml,从中找到url将代码插入,再次运行,问题得到解决
方法二:通过搜索得知问题为连接MySQL出现问题,将解决方向定在MySQL上,自我探索得方法二,“数据库”—>“属性”—>“高级”,找到allowPubilcKeyRetrieval,修改“值”为“TURE”
过程:
缺点:后期发现方法二在每次重启后需要重新配置
(二)前端web页面验证码未显现
解决思路:根据报错org.springframework.data.redis.RedisConnectionFailureException:无法连接到Redis和视频讲解得需要安装Redis才能显现。
方法:安装Redis
过程:根据Redis官方安装教程安装
(三)Redis不支持Windows
解决思路:根据官方要求需要下载模拟机
方法:下载WSL 2和安装Linux
过程:根据Microsoft官方WSL 2安装教程安装
(四)Ubuntu报错 错误:0x80370102
解决思路:对错误代码进行查询得知为CPU未开启硬件虚拟化,但给出的解决办法为intel CPU虚拟化方案,通过查询知AMD CPU的硬件虚拟化为SVM Mode
方法:进入BIOS界面开启CPU虚拟化
过程:重启电脑—>按“F2”进入BIOS界面(不同主板进入方式不同)—>Advanced Mode(高级设置)—>Advanced(高级)—>CPU Configuration—>修改SVM Mode的值为Enabled
(五)电脑重启后进入前端web页面出现网络连接错误
解决思路:之前项目成功运行,关闭后只运行前端项目出现问题,根据报错推测:Mysql设置出现问题,防火墙或后端项目问题,进行尝试一一排除
过程:
猜想一:检查Mysql连接设置,对设置进行确定与连接测试,测试通过,再次运行前端项目,问题未解决
猜想二:关闭网络保护和防火墙,再次运行,问题未解决
猜想三:先运行后端项目后再运行前端项目,问题解决
三、问题启示
- 电脑关机和关闭Idea本地项目会关闭,部分位置的设置会被重置,包括rides、数据库属性设置部分重置等,重启项目需要先运行后端,再运行前端
- allowPubilcKeyRetrieval=True 可能会导致恶意的代理通过中间人攻击(MTIM)获取到明文密码,导致项目安全性降低
- Rides不能在WIndows环境下安装,需要WIndows安装模拟器模拟Linux环境,才能安装运行,且WIndows环境下CPU要支持并开启硬件虚拟化,Rides才能正常运行。计算机重启后需要在Linux界面开启Rides才能正常运行。
- Linux密码输入界面,密码不会显示,不影响使用,未对该问题解决
- 不是所有的软件都支持Windows
- Windows可以安装WSL 2运行Linux子系统