本文章转载于【SpringBoot+Vue】全网最简朴但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客
仅用于学习和讨论,如有侵权请联系
源码:https://gitee.com/green_vegetables/x-admin-project.git
素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取码:up4c
项目概述笔记:https://blog.csdn.net/m0_37613503/article/details/128961102
数据库笔记:https://blog.csdn.net/m0_37613503/article/details/128961401
前端笔记:https://blog.csdn.net/m0_37613503/article/details/128961447
后端笔记:https://blog.csdn.net/m0_37613503/article/details/128961569
1、response是发给后端之后返回的效果,我们要根据这些东西实现后端登录接口
1.1
2 接口数据笔记都有
2.1
3 起首实现我们的登录接口,由于登录跟用户相干,你可以用控制器,也可以重新写一个控制器

3.1 现在写登录请求的控制器

3.2 登录请求是/user拼上/login

4 返回数据是result,你想要返回什么数据是什么类型的

4.1 里面是个对象,但是我们可以放N个参数

4.2 可以返回Map,里面是Mapping方法

4.3 然后我们再return一下,这样就不会报错了

4.4 我们必要用户名和密码,这里必要参数过来,这里必要用户名和密码

4.5 用户名和密码刚好我们类中有这个参数

4.6 用他来举行担当,但是你担当不到,由于他过来是json字符串的情势过来的

4.7 用requestBody,来举行转换

5 有了用户名之后我们要怎么做,可以用来查验用户登录操纵,登录操纵怎么做,根据用户名到数据库里查一下,查到这个用户,就表示你的登录信息是精确的

5.1 我把user传给他,之后给我返回一个Mapper,不过这个login方法我没写

5.2 按住Alt + enter可以快速天生代码,接口也天生了,这样操纵代码非常快


6 这里接口写好了,但是实现类没有,这里有未实现的方法,给他补一下

6.1 这里写一下登录逻辑

6.2 token登录根据,单体架构是sesson
6.3

6.4 查一条数据

6.5 用它 L..

6.6 我们设置一下条件
6.7 这里我们必要传入字段名,假如你不消Lambda去写,是无法辨认你是精确的还是错误的,用的时间就知道更灵活,在用的时间就知道你写没写对

6.8 双冒号后写,传入的参数 User:: (好像是为了制止写字符串)
6.9假如没有查用户名,会成为not,临时查不到
6.10 搞一下密码
6.11 条件预备ok

7、把login 传入里面可以得到用户

7.1 判定值不等于null

8 用key值,什么uuid

8.1 返回数据我给他一个token ,返回一个key

9 这个写完之后返回控制器里面

9.1
10 我在浏览器中发送的任何请求,都是get 请求,现在可以用测试工具postman

10.1 浏览器发送的请求是post,其他的是get

11、利用postman发一个post 请求,先写一个地点
11.1再写一个json数据

12、现在已经测试乐成了,返回的数据是code20000

12.1
13 登录接口实现了1半,但还差存入这个操纵redis

13.1 存入redis你得包管redis是启动的


14、存入redis怎么存那,起首你得整个到我们的项目里

14.1 起首你得添加redis的依靠

15 设置redis 的服务地点和端口
15.1假如不redis的设置,等一下会产生标题
16 在com.lantu下新建一个类

16.1 写真么一个类

17 起首加一个configuration注解

17.1 这里我们就是来设置一个bean,返回名和返回类型就是他

17.2 创建一个redisTemplate对象

17.3 这里的键盘文件是第一个,写string

18、现在真么写是没有关系的,由于设置文件不全

18.1 set connection意味着毗连上redis

19 保持redis里面键值化的标题

19.1 假如你不做序列化,你到redis里面去查的话,你大概看不懂,甚至你看到的是乱码,

20 我们计划一下redis

20.1 这个是针对string数据类型的方法

20.2 把对象传入到string类型的参数,你必要转化为一个json,假如你不转化为Json,你在数据库里,看不懂这个数据库

20.3 这样写完针对键,针对值都做了序列化处理了

##
21、什么叫简朴数据,里面存入的用户名,姓名,电话等,这种数据都是简朴的字符串,但是我往里面存入的内容包括子对象,日期,包罗聚集,他的序列化,这时间数据非常复杂,我得对他举行处理

21.1 
22复制这一小串代码

22.1 放到我们的项目当中

23 通过这个对象举行处理,

23.1
24 现在我想注入redis,到场注解@Autowired,在公司还会针对redis举行封装工具类-----P17
24.1

25 我们必要new一个真么样的东西

25.1
26 里面写object

26.1
27 这句话的意思是我们对键和值都做了序列化处理

27.1
28 登录是偶尔效的

28.1
29 这句话表示30分钟


29.1
30 重启一下按右上方的重启键,我们再重新测试一下

30.1
31、再打开redis....

31.1
32 打开dbo

32.1
33 缓存到redis里的数据

33.1
34 实现登录功能还要两个接口

34.1
35 要预备一个获取用户信息的接口

35.1
36 摁F12,点一下登录,看login

36.1
37 除了login请求之外,还有一个获取用户登录的信息

37.1
38 重点是携带一个参数

38.1
39 再看一下响应:

39.1
40 (先要学习springBoot)

40.1
41、统一的数据格式,这里我弄后端的时间,也要计划成这种模式,提前写明返回参数是什么,必须拿下springBoot

41.1
42 我们来实现一下这个接口,先来到userController控制器里,然后写一个GetMapping(“/info”)请求

42.1 我们返回什么东西那,我们返回的数据时比力复杂的,这里面是个对象,

43 回到返回的数据,写类类型,想写类类型,类类型写?也可以

43.1 我们再写一个getUserInfo的接口,他必要携带一个参数,跟在/info背面,这里必要用到一个注解RequsetParm

43.2 来得到一个类型String,这个token是什么,是我们前面登录接口里面

44 这个登录接口里面

44.1写入了一个token,临时是UUID天生的,

45 根据token获取用户信息,从我们的redis中举行获取,由于我们把我们的数据存入到了redis里面:我们必要他把一个data数据给我

45.1 之后我们把我们的数据给带出去

45.2 再多写一个逻辑,增长一个判定

45.3 假如你没查到数据,那么你的登录肯定是失效的
45.4 用户信息失效,请重新登录
45.5 这个接口我没有实现,肯定要按住alt + enter,天生接口方法


46 来到我们serive里面,给他添加一个实现

46.1 这里面的逻辑就是我们写的这句话

46.2 我们必要token,从里面获取验证信息

46.3 token就是我们的key,我们现在得到的效果肯定不是我们的user对象


47之前做了序列化处理,现在我们要做反序列化处理,才可以或许获取user对象
47.1 起首user对象不能等于null,我们才做这件事

47.2 在pom.xml中导入fastjson,导进来之后回到我们serive里面,之后我们可以将我们传入的对象,反序列化我们的目的类型

47.3 我们想要做的事变,我们想得到他的登录数据,但这个类型是不对的,这个类型是object

47.4 他这里做了重载,这里面有很多类型

47.5 本质上他是一个hashMap对象,把他转换为一个json字符串

47.6 外面套个东西,把他反序列化一下
47.7 反序列化之后,我们就可以把他的user给取出来,我们定义一个返回的数据对象,new一个hashMap

47.8 之后我们往里面放数据
47.9 用户名为name,假如你想前端不加name的话,前端代码还必要一点点微调

47.10 我们必要到loginUser里拿用户名

47.11 再存入一个数据头像,这下面是用户头像的地点


47.12 角色管理,在我们一般权限的计划里,一个用户大概会身兼数职,角色不会限定于一个,因此一般是数组

47.13 角色表,创建一个简朴的角色表
47.14 角色表,一号用户他的角色就是1军号色,起到权限控制

47.15 一军号色就是admin的角色,他是个超级管理员,同时他也是一个平常员工


48 之后我想查他是什么角色,我要查这张表,把角色id给查出来

48.1 放到我们的角色列表里:把角色id查出来,放到我们这张表里
角色id


48.2 关联查询的缺点,随着数据量的增大,关联查询服从是很低的

48.3 这里我已经拿到了用户信息,现在要利用用户id

48.4 我要查询用户id,而且用户id还是1

48.5 查到了两条数据

48.6 现实我想要角色id, 我想放到我项目里面,做一个角色的名称

48.7 关联有两种方式,一种是内毗连,一种是外毗连

48.8 内毗连就是我们角色id,和另一个id都必须存在

48.9 外毗连是假如我们用户满足这张表,这张表的数据可以查出来,另一张表的数据不影响

49 假如你数据完备,内毗连,外毗连都一样,现在我们用内毗连,关联x_role表

49.1弄了两张表

49.2 角色id 关联上

49.3 关联上用户角色品级

49.4 没有.是一种错误


现在我只想查role_name,现在我可以查到两个角色

50 现在我写外毗连,左外毗连,以左边为主表

50.1 外毗连的写法:(我们用外毗连,假如)

50.2 这个条件关联不上,但是主板的数据符合,也是大概查出来的

50.3 用内毗连假如关联条件查不上,那么整条条件也查不出

51、写一条sql语句

51.1 resultType效果类型

51.2 把sql语句给复制已往

51.3 这里的1不要写死,是我们传入的参数

来源:https://blog.csdn.net/weixin_54048131/article/details/132242291
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |