小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统

9a87c95d108e4773b575d6fdd6d0f9e2.png

目录

 

前言

今日进度

详细过程

一、数据库重构

二、编写登录接口

相关知识点


 

前言

昨天我们重启了小菜家教平台的开发,创建了新项目并初步进行了配置,今天我们继续。大家要是有需要源码的话可以在评论区跟我说,博客中就不添加源码了~

今日进度

完成了数据库的重构

编写项目登录接口

详细过程

一、数据库重构

数据库结构及sql语句如下:

2172d5f92a594b6fa6d39f00395d03f6.png

659e6aacbd944353a409b3796f99e621.png

重构完数据库后,对之间的代码要进行相应的修改

先去application.properties中修改一下数据库名

1a96faf48415462fa53b980417dc7aca.png

还要修改一下实体类中的数据库名

5bcd07c71d4b41b5a6d974d5b44f9f2c.png

修改完后,我们启动项目进行测试

用户名输入:小菜管理员,密码输入123456

cc5c17bc99bf4344afcd69507dd6d4ac.png

成功登录访问界面!

b2b10a7562d14bb5806f66e99724647e.png

那到这里,我们的数据库重构并配置完成

二、编写登录接口

接下我们需要自定义登陆接口,然后让SpringSecurity对这个接口放行,让用户访问这个接口的时候不用登录也能访问。

​ 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置把AuthenticationManager注入容器。

我们先编写一下Service层中的代码

88e293decf974034a6f7603037056700.png

830c7dbeb66c4652b7fbeb15499d16ce.png

再编写一下controller中的代码调用service中的对应方法

2870da266c01413d96bf8ee92833b671.png

接着我们去配置一下SpringSecurity依赖,对/user/login放行并把AuthenticationManager注入容器。后面会对AuthenticationManager进行解释

dd6d3bd89a974b7cb2885b0f78974bb2.png

好,现在配置得差不多了,启动项目,我们先去浏览器访问一下

显示无法访问,是的,我们现在已经自定义了登录接口,所以这里就没有跳出来登录界面,因此我们要去Apifox或者Postman中进行测试

0a6d0b0f28eb4b95a2774a387fce4afd.png

我们在Apifox中输入对应信息

这里显示404,同时在IDEA中有报错信息

3b9d93c7239c46c5ad3bf5f1d9f64d53.png

b00b5ba73b944eedb8f39f75ba5fb741.png

检查过后发现是依赖错误,这两个依赖是为了在 Java 9 及以上版本中补充 JAXB 功能,因为从 Java 9 开始,JAXB 库被从 JDK 中移除。这两个依赖的作用是:

jaxb-api:提供了接口和规范。

jaxb-runtime:提供了这些接口的实际实现,使得程序能够真正地执行 XML 和 Java 对象之间的转换。

那我们添加一下依赖继续运行

6198d3a1c0d94c43b1acf1b35bd2ab0e.png

然后还是报错,原因是controller中路径写错了,这里忘记截图就不演示了

当时居然写成了这样哈哈哈,还是自己动手写太少了,犯小错误

@RestController是说明这个类是controller类加入容器,并且返回值是json类型

@RequestMapping中才是指定路径的地方

9196c08ff13946cf87b89db794289f0f.png

改完bug后我们继续进行测试

成功!

2afced04755b49e083cd9b81049ac8b7.png

同时Redis中也出现对应数据

5d1c11cd88754e59beb9b7ffa1abdbe6.png

今天的编码任务到此结束,接下来讲总结一下相关知识

相关知识点

在我们进行登录的时候有这两行代码

b0a351e17e55411294a17fa7053e97d5.png

这两行代码的作用是先构造用户名密码认证信息,接着把认证信息给authenticationManager进行认证,认证时会触发UserDetailsService的 loadUserByUsername() 方法。而我们之前已经编写过UserDetailsServiceImpl并重写了 loadUserByUsername() 方法,通过这个方法从数据库中查询数据并返回进行验证,认证过程中密码有加密,还会通过配置的 PasswordEncoder 比对密码是否匹配,认证成功后生成认证信息 Authentication。

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数学期望和联合概率密度

数学期望的定义 数学期望是描述随机变量平均趋势的一个重要统计量。根据随机变量的类型(离散或连续),数学期望的定义有所不同。 离散型随机变量的数学期望: 若离散型随机变量 X X X取值为 x 1 , x 2 , … , x n , … x_1,x_2,\do…

MRCTF2020:你传你ma呢

文件上传题先判断黑白名单过滤,先传个最简单的木马 这里上传不了php文件,猜测可能是对php文件进行了过滤,将文件改为任意后缀这里改为.abc 还是上传不成功,猜测可能对MIME也做了过滤,将Content-Type更改为image/jpeg再…

Harmony项目基础

项目基础 开发环境 DevEco Stuio下载和安装 DevEco Studio下载 下载链接:https://developer.huawei.com/consumer/cn/deveco-studio/ 安装IDE 直接运行安装文件即可 配置SDK及工具链 DevEco Studio 提供 SDK Manager 统一管理 SDK 及工具组件,包括如下组件包&…

《使用Gin框架构建分布式应用》阅读笔记:p307-p392

《用Gin框架构建分布式应用》学习第16天,p307-p392总结,总86页。 一、技术总结 1.AWS chapter 08讲使用AWS进行部署,可以根据需要选择是否阅读。因为使用到的概率很小,且还要绑卡,本人选择跳过。 2.CI/CD (1)什么…

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大 时间:2023年 机构:北京邮电大学 发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023 代码源码地址: pytorch版本:https://github.com/dyh…

windows下安装jdk并配置环境

【1】安装jdk 这里建议傻瓜式安装,不要自定义路径,直接下一步下一步。 在Windows系统中安装JDK并设置环境变量(包括JAVA_HOME和CLASSPATH)是一个常见的任务。 1. 下载并安装JDK 访问Oracle官方网站或其他可信来源下载JDK安装包…

云安全真知实践 国内头部能源企业全面灵活云安全方案大公开

能源与安全,是两个紧密相连的齿轮,驱动着当今社会的运转与发展。能源是动力源泉,而安全则是守护这一动力的坚实支撑,保障着能源系统的运作与敏感数据的安全。 亚信安全一直以来为国内能源行业提供着安全保障,从石油、…

Photoshop 2025重磅来袭 :全新功能炫耀安装!Adobe全家桶

2024年10月,备受期待的Adobe Photoshop 2025正式版如约而至。每年的十月份,Adobe都会带来其软件的重要更新,而今年的Photoshop 2025则在改进和新功能方面做出了重磅升级,让创意工作者和设计师们倍感振奋。 新界面与核心功能 Ph…

【Java面试——计算机基础——网络——一篇就够了!!!】

1. 网络分层模型 1.1 OSI七层模型 OSI 七层模型 是国际标准化组织提出的一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和…

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

(C#面向初学者的 .NET 的生成 AI) 第 3 部分-ChatGPT 简介

在本部分中,将简要介绍ChatGPT。我们将了解ChatGPT是什么,稍微探讨一下ChatGPT中的角色分工,聊天和消息历史记录的作用。最后我们将查看一个使用OpenAI .NET SDK的ChatGPT代码示例。 1、ChatGPT是什么呢? ChatGPT中的GPT部分来…

Java中的日期与时间的间隔:Period类、Duration类

1、Period 类 在 Java 中,Period 类和 Duration 类都是用于表示时间间隔的类,但它们有不同的使用场景和特性。Period 类位于 java.time 包中,主要用于表示基于日期的时间间隔,即年、月、日的差异。它常用于处理日期之间的计算&am…

算法: 链表题目练习

文章目录 链表题目练习两数相加两两交换链表中的节点重排链表合并 K 个升序链表K 个一组翻转链表 总结 链表题目练习 两数相加 坑: 两个链表都遍历完后,可能需要进位. class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode cur1 l1;ListNode…

交替传译收费标准

交替传译是一种高端口服务,常用于国际会议、商务洽谈、学术交流等多语言会议场合,演讲者的发言一般不超过15分钟,交替传译员和演讲者采取接力式交替发言,在这种模式下,口译员需要具备优秀的记忆能力和翻译功底。其价格…

灵动AI视频:重塑视频创作,智启无限灵感!

🚀 在这个视觉为王的时代,视频创作已成为展现创意与才华的重要舞台。然而,繁琐的剪辑流程、有限的创意资源往往成为制约创作者发挥的瓶颈。灵动AI视频,一款集智能、高效、创意于一体的视频编辑神器,正为视频创作领域带…

生物信息学R语言

检查R语言安装包和依赖 .libPaths() 这里有一个简单的生物信息学分析案例,使用R语言处理基因表达数据。这个示例中,我们将导入模拟的基因表达数据,进行数据预处理(如归一化),并使用主成分分析&#xff08…

基于VsCode platformio的stm32开发环境搭建

背景 VsCode作为当下流行的编辑器,且不单单是一个编辑器里面集成了很多插件,使用这些插件可以完成很多功能。 STM32开发环境除了KEIL与IAR,其实还有很多其他的开方方式,ST官方提供了很多的开发软件,基于Eclipse也可以…

【题解】【排序】—— [NOIP2017 普及组] 图书管理员

【题解】【排序】—— [NOIP2017 普及组] 图书管理员 [NOIP2017 普及组] 图书管理员题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 1.思路解析2.AC代码 [NOIP2017 普及组] 图书管理员 通往洛谷的传送门 题目背景 NOIP2017 普及组 T2 题目描述 图书馆中…

华为和思科的配置

vrrp和mstp 思路 vrrp是用来虚拟网关,噢,是虚拟一条虚拟网关 优先级,priority越大越优先,优先级相同,哪个的路由器的vrrp先起来,谁就是主 mstp是快速生成树协议,防止环路用的 优先级越小越优…

React 前端如何通过组件完成 “下载 Excel模板” 和 “上传 Excel 文件并读取内容生成可使用的对象数组”

文章目录 一、Excel 模板下载01、代码示例 二、Excel 文件上传01、文件展示02、示例代码03、前端样式展示04、数据结果展示 三、完整代码 本文的业务需求是建立在批量导入数据的情况下,普通组件只能少量导入,数据较多的情况都会选择 Excel 数据导入&…