前后端分离------后端创建笔记(02)

 本文章转载于【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是发给后端之后返回的结果,我们要根据这些东西实现后端登录接口

前后端分离------后端创建笔记(02)_第1张图片

1.1

2 接口数据笔记都有

前后端分离------后端创建笔记(02)_第2张图片

2.1

3 首先实现我们的登录接口,因为登录跟用户相关,你可以用控制器,也可以重新写一个控制器

前后端分离------后端创建笔记(02)_第3张图片

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

前后端分离------后端创建笔记(02)_第4张图片

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

前后端分离------后端创建笔记(02)_第5张图片

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

前后端分离------后端创建笔记(02)_第6张图片

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

前后端分离------后端创建笔记(02)_第7张图片

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

前后端分离------后端创建笔记(02)_第8张图片

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

前后端分离------后端创建笔记(02)_第9张图片

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

前后端分离------后端创建笔记(02)_第10张图片

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

前后端分离------后端创建笔记(02)_第11张图片

 4.6 用他来进行接受,但是你接受不到,因为他过来是json字符串的形式过来的

前后端分离------后端创建笔记(02)_第12张图片

 4.7 用requestBody,来进行转换

前后端分离------后端创建笔记(02)_第13张图片

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

前后端分离------后端创建笔记(02)_第14张图片

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

前后端分离------后端创建笔记(02)_第15张图片

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

前后端分离------后端创建笔记(02)_第16张图片

 前后端分离------后端创建笔记(02)_第17张图片

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

前后端分离------后端创建笔记(02)_第18张图片

6.1 这里写一下登录逻辑

前后端分离------后端创建笔记(02)_第19张图片

6.2 token登录凭证,单体架构是sesson

前后端分离------后端创建笔记(02)_第20张图片 6.3

前后端分离------后端创建笔记(02)_第21张图片

6.4 查一条数据

前后端分离------后端创建笔记(02)_第22张图片

 6.5 用它 L..

前后端分离------后端创建笔记(02)_第23张图片

前后端分离------后端创建笔记(02)_第24张图片6.6 我们设置一下条件

前后端分离------后端创建笔记(02)_第25张图片6.7 这里我们需要传入字段名,如果你不用Lambda去写,是无法识别你是正确的还是错误的,用的时候就知道更灵活,在用的时候就知道你写没写对

前后端分离------后端创建笔记(02)_第26张图片

 6.8 双冒号后写,传入的参数 User:: (好像是为了避免写字符串)

前后端分离------后端创建笔记(02)_第27张图片6.9如果没有查用户名,会成为not,暂时查不到

前后端分离------后端创建笔记(02)_第28张图片6.10 搞一下密码

前后端分离------后端创建笔记(02)_第29张图片6.11 条件准备ok

前后端分离------后端创建笔记(02)_第30张图片

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

前后端分离------后端创建笔记(02)_第31张图片

7.1 判断值不等于null 

前后端分离------后端创建笔记(02)_第32张图片

8 用key值,什么uuid

前后端分离------后端创建笔记(02)_第33张图片

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

前后端分离------后端创建笔记(02)_第34张图片

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

前后端分离------后端创建笔记(02)_第35张图片

9.1

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

前后端分离------后端创建笔记(02)_第36张图片

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

前后端分离------后端创建笔记(02)_第37张图片

11、使用postman发一个post 请求,先写一个地址

前后端分离------后端创建笔记(02)_第38张图片 11.1再写一个json数据

前后端分离------后端创建笔记(02)_第39张图片

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

前后端分离------后端创建笔记(02)_第40张图片

12.1

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

前后端分离------后端创建笔记(02)_第41张图片

13.1 存入redis你得保证redis是启动的

前后端分离------后端创建笔记(02)_第42张图片

前后端分离------后端创建笔记(02)_第43张图片

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

前后端分离------后端创建笔记(02)_第44张图片

14.1 首先你得添加redis的依赖

前后端分离------后端创建笔记(02)_第45张图片

15 设置redis 的服务地址和端口

前后端分离------后端创建笔记(02)_第46张图片 15.1如果不redis的配置,等一下会产生问题

16 在com.lantu下新建一个类

前后端分离------后端创建笔记(02)_第47张图片

 16.1 写真么一个类

前后端分离------后端创建笔记(02)_第48张图片

17 首先加一个configuration注解

前后端分离------后端创建笔记(02)_第49张图片

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

前后端分离------后端创建笔记(02)_第50张图片

 17.2 创建一个redisTemplate对象

前后端分离------后端创建笔记(02)_第51张图片

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

前后端分离------后端创建笔记(02)_第52张图片

18、现在真么写是没有关系的,因为配置文件不全

前后端分离------后端创建笔记(02)_第53张图片

18.1 set connection意味着连接上redis 

前后端分离------后端创建笔记(02)_第54张图片

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

前后端分离------后端创建笔记(02)_第55张图片

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

前后端分离------后端创建笔记(02)_第56张图片

20 我们设计一下redis 

前后端分离------后端创建笔记(02)_第57张图片

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

前后端分离------后端创建笔记(02)_第58张图片

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

前后端分离------后端创建笔记(02)_第59张图片

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

前后端分离------后端创建笔记(02)_第60张图片

##

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

前后端分离------后端创建笔记(02)_第61张图片

21.1 前后端分离------后端创建笔记(02)_第62张图片

 22复制这一小串代码

前后端分离------后端创建笔记(02)_第63张图片

22.1 放到我们的项目当中

前后端分离------后端创建笔记(02)_第64张图片

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

前后端分离------后端创建笔记(02)_第65张图片

23.1

24 现在我想注入redis,加入注解@Autowired,在公司还会针对redis进行封装工具类-----P17前后端分离------后端创建笔记(02)_第66张图片

24.1

前后端分离------后端创建笔记(02)_第67张图片

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

前后端分离------后端创建笔记(02)_第68张图片

 25.1

26 里面写object

前后端分离------后端创建笔记(02)_第69张图片

26.1

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

前后端分离------后端创建笔记(02)_第70张图片

27.1

28 登录是有时效的

前后端分离------后端创建笔记(02)_第71张图片

28.1

29 这句话表示30分钟

前后端分离------后端创建笔记(02)_第72张图片

 前后端分离------后端创建笔记(02)_第73张图片

29.1

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

前后端分离------后端创建笔记(02)_第74张图片

30.1 

31、再打开redis....

前后端分离------后端创建笔记(02)_第75张图片

 31.1

32 打开dbo

前后端分离------后端创建笔记(02)_第76张图片

32.1

33 缓存到redis里的数据

前后端分离------后端创建笔记(02)_第77张图片

33.1

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

前后端分离------后端创建笔记(02)_第78张图片

34.1

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

前后端分离------后端创建笔记(02)_第79张图片

35.1

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

前后端分离------后端创建笔记(02)_第80张图片

36.1

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

前后端分离------后端创建笔记(02)_第81张图片

37.1

38 重点是携带一个参数

前后端分离------后端创建笔记(02)_第82张图片

38.1

39 再看一下响应:

39.1

40 (先要学习springBoot)

前后端分离------后端创建笔记(02)_第83张图片

40.1

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

前后端分离------后端创建笔记(02)_第84张图片

41.1

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

前后端分离------后端创建笔记(02)_第85张图片

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

前后端分离------后端创建笔记(02)_第86张图片

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

前后端分离------后端创建笔记(02)_第87张图片

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

前后端分离------后端创建笔记(02)_第88张图片

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

前后端分离------后端创建笔记(02)_第89张图片

44 这个登录接口里面

前后端分离------后端创建笔记(02)_第90张图片

44.1写入了一个token,暂时是UUID生成的,

 前后端分离------后端创建笔记(02)_第91张图片

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

前后端分离------后端创建笔记(02)_第92张图片

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

前后端分离------后端创建笔记(02)_第93张图片

 45.2 再多写一个逻辑,增加一个判断

前后端分离------后端创建笔记(02)_第94张图片

45.3 如果你没查到数据,那么你的登录一定是失效的

前后端分离------后端创建笔记(02)_第95张图片 45.4 用户信息失效,请重新登录

前后端分离------后端创建笔记(02)_第96张图片45.5 这个接口我没有实现,一定要按住alt + enter,生成接口方法

前后端分离------后端创建笔记(02)_第97张图片

前后端分离------后端创建笔记(02)_第98张图片

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

前后端分离------后端创建笔记(02)_第99张图片

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

前后端分离------后端创建笔记(02)_第100张图片

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

前后端分离------后端创建笔记(02)_第101张图片

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

前后端分离------后端创建笔记(02)_第102张图片

前后端分离------后端创建笔记(02)_第103张图片

47之前做了序列化处理,现在我们要做反序列化处理,才能够获取user对象

47.1 首先user对象不能等于null,我们才做这件事

前后端分离------后端创建笔记(02)_第104张图片

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

前后端分离------后端创建笔记(02)_第105张图片

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

前后端分离------后端创建笔记(02)_第106张图片

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

前后端分离------后端创建笔记(02)_第107张图片

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

前后端分离------后端创建笔记(02)_第108张图片

47.6 外面套个东西,把他反序列化一下 

前后端分离------后端创建笔记(02)_第109张图片47.7 反序列化之后,我们就可以把他的user给取出来,我们定义一个返回的数据对象,new一个hashMap

前后端分离------后端创建笔记(02)_第110张图片

47.8  之后我们往里面放数据

前后端分离------后端创建笔记(02)_第111张图片 47.9 用户名为name,如果你想前端不加name的话,前端代码还需要一点点微调

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

前后端分离------后端创建笔记(02)_第112张图片

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

前后端分离------后端创建笔记(02)_第113张图片

 

前后端分离------后端创建笔记(02)_第114张图片 

 

前后端分离------后端创建笔记(02)_第115张图片

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

前后端分离------后端创建笔记(02)_第116张图片

47.13 角色表,创建一个简单的角色表

前后端分离------后端创建笔记(02)_第117张图片 47.14 角色表,一号用户他的角色就是1号角色,起到权限控制 

前后端分离------后端创建笔记(02)_第118张图片

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

前后端分离------后端创建笔记(02)_第119张图片

前后端分离------后端创建笔记(02)_第120张图片

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

前后端分离------后端创建笔记(02)_第121张图片

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

角色id

前后端分离------后端创建笔记(02)_第122张图片

 

前后端分离------后端创建笔记(02)_第123张图片

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

前后端分离------后端创建笔记(02)_第124张图片

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

前后端分离------后端创建笔记(02)_第125张图片

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

前后端分离------后端创建笔记(02)_第126张图片

 48.5 查到了两条数据

前后端分离------后端创建笔记(02)_第127张图片

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

前后端分离------后端创建笔记(02)_第128张图片

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

前后端分离------后端创建笔记(02)_第129张图片

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

前后端分离------后端创建笔记(02)_第130张图片

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

前后端分离------后端创建笔记(02)_第131张图片

49 如果你数据完整,内连接,外连接都一样,现在我们用内连接,关联x_role表

 

前后端分离------后端创建笔记(02)_第132张图片

49.1弄了两张表

前后端分离------后端创建笔记(02)_第133张图片

 49.2 角色id 关联上

前后端分离------后端创建笔记(02)_第134张图片

 49.3 关联上用户角色等级 

前后端分离------后端创建笔记(02)_第135张图片

49.4 没有.是一种错误

前后端分离------后端创建笔记(02)_第136张图片

 前后端分离------后端创建笔记(02)_第137张图片

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

前后端分离------后端创建笔记(02)_第138张图片

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

前后端分离------后端创建笔记(02)_第139张图片

50.1 外连接的写法:(我们用外连接,如果)

前后端分离------后端创建笔记(02)_第140张图片

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

前后端分离------后端创建笔记(02)_第141张图片

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

前后端分离------后端创建笔记(02)_第142张图片

51、写一条sql语句

前后端分离------后端创建笔记(02)_第143张图片

51.1 resultType结果类型

前后端分离------后端创建笔记(02)_第144张图片

 51.2 把sql语句给复制过去

前后端分离------后端创建笔记(02)_第145张图片

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

前后端分离------后端创建笔记(02)_第146张图片

你可能感兴趣的:(javaweb,笔记)