当前位置: 首页 > 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。

http://www.lryc.cn/news/477600.html

相关文章:

  • Android AndroidManifest 文件内标签及属性
  • 修改sql server 数据库的排序规则Chinese_PRC_CI_AS(字符集+排序)
  • 【ChatGPT】让ChatGPT在回答中附带参考文献与来源
  • 云计算 在esxi 如何创建磁盘存储
  • 大屏可视化:舞动数据与美观的“设计秘籍”
  • w~视觉~3D~合集1
  • android 怎么查看依赖包的大小
  • HyperLogLog 的原理 详解
  • OCR、语音识别与信息抽取:免费开源的AI平台在医疗领域的创新应用
  • 苍穹外卖Bug集合
  • 小菜家教平台(一):基于SpringBoot+Vue打造一站式学习管理系统
  • PyCharm中pylint安装与使用
  • 一篇文章了解TCP/IP模型
  • python文字识别---基于百度api
  • linux下linuxdeployqt打包过程
  • 【拥抱AI】AI大模型在软件开发中的应用如何保证数据安全?
  • python爬取旅游攻略(1)
  • C++网络编程之IO多路复用(一)
  • vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么区别
  • Antd Vue中使用table组件把相同名称的合并单元格---只需两步
  • cmake中execute_process详解
  • 搜维尔科技:使用Sensglove Nova2触觉反馈手套遥操作机器人操作
  • 企业HR如何选对一款智能招聘软件?
  • 任务中心全新升级,新增分享接口文档功能,MeterSphere开源持续测试工具v3.4版本发布
  • 书生大模型第三关Git 基础知识
  • WordPress 中最佳的维护服务:入门级用户指南
  • 前端使用Luckysheet把返回的base64或二进制文件流格式,实现xlsx文件预览
  • 腾讯混元宣布大语言模型和3D模型正式开源
  • 提示工程指南 笔记
  • WordPress站点网站名称、logo设置