当前位置: 首页 > news >正文

小菜家教平台(二):基于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。

相关文章:

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

目录 前言 今日进度 详细过程 一、数据库重构 二、编写登录接口 相关知识点 前言 昨天我们重启了小菜家教平台的开发,创建了新项目并初步进行了配置,今天我们继续。大家要是有需要源码的话可以在评论区跟我说,博客中就不添加源码了~ 今…...

Android AndroidManifest 文件内标签及属性

以下是重新排版后的文章&#xff1a; AndroidManifest 1. <manifest> 它是AndroidManifest.xml文件的根标签&#xff0c;包含了整个应用程序的基本信息&#xff0c;如应用程序的包名、版本代码、版本名称等。所有其他标签几乎都是在manifest标签内部定义的。 示例&…...

修改sql server 数据库的排序规则Chinese_PRC_CI_AS(字符集+排序)

文章目录 引言I 解决方案案例II 知识扩展排序规则SQL SERVER支持的所有排序规则引言 新增sql server 数据库实例的默认排序规则不支持中文存储,导致乱码 解决方案: 修改排序规则为Chinese_PRC_CI_AS 或者 Chinese_PRC_Stroke_CI_AS_WS或者Chinese_PRC_CI_AI_KS_WS 仅对新增…...

【ChatGPT】让ChatGPT在回答中附带参考文献与来源

让ChatGPT在回答中附带参考文献与来源 在撰写内容时&#xff0c;引用参考文献和来源可以增强信息的可信度和权威性。通过引导ChatGPT生成带有参考文献的回答&#xff0c;用户能够获取更可靠的信息和背景资料。本文将探讨如何有效地引导ChatGPT在回答中附带参考文献与来源。 一…...

云计算 在esxi 如何创建磁盘存储

重启启动...

大屏可视化:舞动数据与美观的“设计秘籍”

大屏可视化鉴赏&#xff1a;踏入软件系统产品设计之旅&#xff0c;让我们一同鉴赏那些闪耀在智慧农业、智慧园区、智慧社区及智慧港口等领域的大屏可视化杰作。每一帧画面&#xff0c;都是科技与创新的完美融合&#xff0c;数据跃然屏上&#xff0c;智慧触手可及。 >> 数…...

w~视觉~3D~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12316553 #SAFDNet 3D点云物体检测对自动驾驶感知至关重要&#xff0c;如何高效地从稀疏点云数据中学习特征表示是3D点云物体检测面临的一个关键挑战。我们在本文中将会介绍团队发表在NeurIPS 2023的HEDNet和CVPR 2024的SAFD…...

android 怎么查看依赖包的大小

Android 项目依赖包大小查看方案 在 Android 项目开发过程中&#xff0c;依赖包管理是一个非常重要的环节。了解每个依赖包的大小有助于我们优化应用性能&#xff0c;减少应用安装包的大小。本文将介绍一种方法来查看 Android 项目中各个依赖包的大小。 1. 环境准备 在开始之…...

HyperLogLog 的原理 详解

HyperLogLog&#xff08;简称 HLL&#xff09;是一种用于近似计数&#xff08;特别是基数估计&#xff0c;Cardinality Estimation&#xff09;的算法&#xff0c;它能够在大数据场景中高效地估计集合中不同元素的数量&#xff0c;尤其适用于数据流的情况。HyperLogLog 相较于传…...

OCR、语音识别与信息抽取:免费开源的AI平台在医疗领域的创新应用

一、系统概述 在医疗行业中&#xff0c;大量数据来自手写病历、医学影像报告、患者对话记录等非结构化数据源。这些数据常常存在信息碎片化和管理困难的问题&#xff0c;给医务人员的工作带来了不便。思通数科AI多模态能力平台正是为了解决这一行业痛点而生&#xff0c;产品集…...

苍穹外卖Bug集合

初始化后端项目运行出现以下问题 以上报错是因为maven和jdk版本不符合&#xff0c;需要将jdk改成17&#xff0c;mavne改成3.9.9...

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

前言 现在已经学习了很多与Java相关的知识&#xff0c;但是迟迟没有进行一个完整的实践&#xff08;之前这个项目开发到一半&#xff0c;很多东西没学搁置了&#xff0c;同时原先的项目中也有很多的问题&#xff09;&#xff0c;所以现在准备从零开始做一个基于SpringBootVue的…...

PyCharm中pylint安装与使用

目录 1. 安装插件2. pycharm中使用该功能3. 命令行使用 1. 安装插件 然后重启 2. pycharm中使用该功能 3. 命令行使用 前提是先 pip install pylint pylint demo01.py下面红框内容的意思是&#xff0c;得到10分/ 满分10分&#xff0c;上次运行获得8.33分&#xff0c;经调整…...

一篇文章了解TCP/IP模型

TCP/IP模型&#xff0c;即传输控制协议/互联网协议模型&#xff08;Transmission Control Protocol/Internet Protocol Model&#xff09;&#xff0c;是互联网及许多其他网络上使用的分层通信模型。以下是对TCP/IP模型的详细介绍&#xff1a; 一、定义与组成TCP/IP模型是一个四…...

python文字识别---基于百度api

百度智能云账户注册&#xff1a;https://console.bce.baidu.com/ai/#/ai/ocr/app/list 获取appid、api_key、secret_key from aip import AipOcr import osconfig {appid: 116122887,api_key: DAQnt...,secret_key: 5S0Kpyh.... }# 初始化 AipOcr 客户端 client AipOcr(c…...

linux下linuxdeployqt打包过程

一 、linuxdeployqt下载安装 1.下载linuxdeployqt依赖拷贝工具 下载地址&#xff1a;https://github.com/probonopd/linuxdeployqt/releases 2.为了方便使用&#xff0c;将名字改短一点&#xff1a;mv linuxdeployqt-6-x86_64.AppImage linuxdeployqt3.修改下载的文件的可执行…...

【拥抱AI】AI大模型在软件开发中的应用如何保证数据安全?

随着AI大模型在软件开发中的广泛应用&#xff0c;数据安全问题变得尤为重要。确保数据的安全不仅关乎企业的声誉和合规性&#xff0c;还直接影响到用户对产品的信任。以下是几种常见的方法和最佳实践&#xff0c;以确保在使用AI大模型时的数据安全。 1. 数据加密 传输加密&a…...

python爬取旅游攻略(1)

参考网址&#xff1a; https://blog.csdn.net/m0_61981943/article/details/131262987 导入相关库&#xff0c;用get请求方式请求网页方式&#xff1a; import requests import parsel import csv import time import random url fhttps://travel.qunar.com/travelbook/list.…...

C++网络编程之IO多路复用(一)

概述 在C网络编程中&#xff0c;处理并发连接是一个非常关键的核心问题。为了有效管理来自多个客户端的请求&#xff0c;服务器需要能够同时监听多个套接字上的事件&#xff0c;这通常通过IO多路复用来实现。 IO多路复用是一种工作机制&#xff0c;它可以让程序监视多个文件描述…...

vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么区别

vscode在windows和linux如何使用cmake构建项目并make生成可执行文件&#xff0c;两者有什么区别 windows默认使用的是最新的visual studio&#xff0c;而linux默认就是cmake 文章目录 vscode在windows和linux如何使用cmake构建项目并make生成可执行文件&#xff0c;两者有什么…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...