使用Jwt生成token字符串
*Jwt有几部分组成,分别为什么?
三部分组成,分别为:jwt头、有效载荷(用户信息)、签名哈希(防伪标志)
*你登录功能的实现流程是什么?
调用登录的接口,会返回一个token字符串,把token字符串放到cookie中,创建前端拦截器进行判断,如果cookie里包含token字符串,把token放到header中。调用接口会从header中取值到token,根据token值获取到用户信息,然后在页面中进行显示
- 微信扫码登录
*OAuth2是什么?
只是一种解决方法,按照一种规则,但是具体是什么规则,没有规定
他是一种方案,但不是一种协议
*你是如何获取扫码人微信信息的?
扫码后,微信会返回两个值code和state;然后拿着这个code去请求微信的固定地址,获得两个值access_token访问凭证和openid每个微信的唯一表示;然后拿着这两个再去请求微信的一个固定地址获取到扫码人的信息
4、名师列表功能
5、名师详情功能
6、课程列表功能
- 多条件查询分页列表功能
7、课程详情功能
-
课程信息显示(包含基本信息、讲师信息、分类信息、大纲信息)
-
判断课程是否需要购买
8、课程详细视频在线播放功能
阿里云视频点播、阿里云播放器
9、课程支付功能
-
生成课程订单
-
生成微信支付二维码
-
微信最终支付
*你的微信支付功能的流程你说说?
如果课程是收费课程,点击立即购买,生成课程订单;点击订单页面中的去支付,生成微信支付二维码;使用微信区扫秒二维码实现支付;支付之后,每个3秒查询支付状态(是否支付成功),如果没有支付成功就等待,如果支付成功之后,修改订单状态,向支付表中添加记录
================================================================
后端写接口,前端调后端接口得到数据并显示
1、vue
-
基本语法
-
指令:
-
v-bind 简写
:
-
v-model
-
v-for
-
v-if
-
v-html
-
生命周期:
-
created(),页面渲染之前
-
mounted(),页面渲染之后
-
绑定事件:
-v-on 简写@
- ES6规范,通过babel转成ES5,框架自带
2、Element-UI
3、Nodejs
Js运行环境,不需要浏览器直接运行代码,模拟服务器效果
4、NPM
包管理工具,类似Maven
-
npm命令
-
npm init初始化
-
npm install 依赖名
5、Babel
转码器,ES6转换ES5代码
6、前端模块化
通过一个页面或js去调用另外一个页面的js文件的方法
ES6语法不能在nodejs中直接使用,需要通过babel编译成ES5再执行
7、后台系统用vue-admin-templete
基于vue、Element-ui、9528端口
8、前台系统用Nuxt
基于vue、3000端口
服务器渲染技术
9、Echarts
图标工具
百度捐给aprch
*你能做全栈吗?
不要直接回答能或不能;
说:项目中有80%的后端都是我写的,前端都是cv的,对于前端技术有所了解
1、微服务架构
将项目拆分为独立的模块,每个模块都有其端口号,模块与模块之间没有关系,是通过远程调用实现
2、SpringBoot
*SpringBoot是什么东西?
SpringBoot本质就是spring,只是快速构建Spring工程的脚手架
-
细节:
-
启动类包扫描机制
从外往里扫,也可以设置扫描机制,通过@ComponentScan(包路径)
-
配置类
-
SpringBoot配置文件类型
-
properties
-
yaml
-
配置文件加载机制
-
先bootstrap
-
再properties或yaml
-
再对应的环境如:dev、test、prod
3、SpringCloud
-
是很多框架的总称,基于springboot实现
-
组成的框架由:
-
eureka服务注册,nacos
-
OpenFeign服务调用
-
Hystrix熔断器
-
Gateway网关
-
Config配置中心,nacos
-
Bus消息总线,nacos
-
项目中,使用阿里巴巴nacos,代替springcloud一些组件
-
Nacos
-
注册中心
-
配置中心
-
Feign
-
服务调用,一个微服务调用另外一个微服务,实现远程调用
-
熔断器
-
Gateway网关,之前是zuul
-
版本
4、MyBatisPlus
-
MyBatisPlus就是对MyBatis的增强,本身并没改变
-
自动填充
-
乐观锁
-
逻辑删除
-
代码生成器
5、EasyExcel
- 阿里巴巴提供操作Excel工具,效率高,代码简洁
*为什么他效率高,代码简洁?
因为他封装了poi进行封装,采用SAX方法(一行一行操作)进行解析
Dom:一次将所有数据放进内存中来
- 项目应用在添加课程分类,读取excel数据
1、SpringSecurity
-
项目整合框架实现权限管理功能
-
框架组成:
-
认证(登录)
-
授权(对用户授予权限)
-
登录认证过程
*说一说SpringSecurity的登录认证过程?
- 代码执行过程
2、Redis
-
首页数据通过Redis做缓存
-
Redis数据类型:
-
Set
-
List
-
Hash
-
String
-
zset
*Redis做缓存,什么样的数据适合使用Redis做缓存?
经常访问,但不经常修改的数据;如主页
3、Nginx
-
方向代理服务器
-
请求转发、负载均衡、动静分离
4、OAuth2+JWT
-
针对特定问题的解决方案
-
Jwt制定一种规则生成字符串,包括:三部分
-
JWT头
-
有效载荷(用户信息)
-
防伪标志
5、HttpClient
-
模拟浏览器,请发请求响应的工具
-
项目中应用场景:微信登录获取扫描人信息,微信支付查询支付状态
6、Cookie
-
特点:
-
客户端技术,存储在浏览器、客户端中
-
每次发送请求,都会带着cookie
-
cookie有默认有效时长,默认关闭浏览器就不存在了,也可以设置时长,会话级别
7、微信登录
上面有讲了
8、微信支付
上面有讲了
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
总结
我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。
这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!
、实战项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-RXiWjilZ-1711045183079)]
总结
我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。
这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。
大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:
[外链图片转存中…(img-cb9LOj8M-1711045183079)]
[外链图片转存中…(img-hPAv9DS0-1711045183080)]
[外链图片转存中…(img-ajMdbL9V-1711045183080)]
希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!