自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

转载 token过期机制

第一种方案:在服务器端保存 Token 状态,用户每次操作都会自动刷新(推迟) Token 的过期时间。 该方案在前后端分离的情况下,每秒可能发起很多次请求,每次都去刷新过期时间会产生非常大的代价。如果 Token 的过期时间被持久化到数据库或文件,代价就更大了。所以通常为了提升效率,减少消耗,会把 Token 的过期时保存在缓存或者内存中。 第二种方案:使用 Refresh Token,它可以避免频繁的读写操作。这种方案中,服务端不需要刷新 Token 的过期时间,一旦 Token 过期,就反馈给

2021-12-24 11:10:51 5936

原创 springMVC的执行流程

springMVC的执行流程 (1)用户发送请求至前端控制器 DispatcherServlet; (2) DispatcherServlet 收到请求后,调用 HandlerMapping 处理器映射器,请求获取 Handle; (3)处理器映射器根据请求 url 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet; (4)DispatcherServlet 调用 HandlerAdapter 处理器适配器; (5)HandlerAdapter 经

2021-04-12 15:46:46 108 1

原创 登录鉴权

1.用户注册 前台需要给我们传递用户名、密码、手机号、手机验证码。验证用户前台传过来的数据是否符合规范,我们使用的Hibernate Validator框架实现的服务端表单校验。短信验证码这块,我们采用的阿里的大于短信接口来做的,我们单独搭建了一个短信微服务,发送的短信请求通过MQ消息由短信微服务消费,进行短信发送。密码我们使用的是Spring提供的BCryptPasswordEncoder加密算法,分成加密和验证两个过程: 加密:算法会对明文密码使用UUID随机生成一个salt,使用salt结合密码来

2021-04-12 15:13:51 201

原创 ElasticSearch实现逻辑

我们单独做了一个搜索微服务,使用的ElasticSearch,一个全文检索引擎,我们使用IK分词器进行中文分词。我们为什么用ES呢?因为首先我们的商品数据量比较大,其次搜索匹配如果是在mysql中,必须进行模糊查询,但是前置模糊会导致索引失效,所以我们使用了ElasticSearch来做商品数据的检索。我们在项目中使用的是SpringDataElasticSearch框架来操作ES。 ES这一块大体的实现逻辑分为3个部分: mysql中商品数据全量导入ES中 我们写了一个单元测试(@Test)脚本,在脚

2021-04-12 15:09:24 289

转载 分享一些第三方免费接口集

百度AccessToken:针对HTTP API调用者,百度AIP开…——接口地址语音识别:通过场景识别优化,为车载导航,智能家居和…——接口地址语音合成:将用户输入的文字,转换成流畅自然的语音输…——接口地址出租车票识别(可在线调用):针对出租车票(现支持北京、上海、深圳)的…——接口地址火车票识别(可在线调用):支持对大陆火车票的车票号、始发站、目的站…——接口地址数字识别(可在线调用):对图像中的阿拉伯数字进行识别提取,适用于…——接口地址通用文字识别(可在线调用):支持多场景下的文字检测识别,多项I

2021-04-01 17:27:59 2717 1

原创 JVM虚拟机

一、基本概念 1. 类加载子系统:负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间 2. 方法区:就是存放类信息、常量信息、常量池信息,包括字符串字面量和数字常量 3. java堆:在java虚拟机启动的时候建立java堆,它是java程序最主要的内存工作区域,几乎所有的对象实例都存放在java堆中,堆空间是所有线程共享的 4. 直接内存:java的NIO库允许java程序使用直接内存,从而提高性能,通常直接内存速度会优于java堆,读写频繁的场合可能会考虑使用 5.

2021-01-12 18:40:58 73

原创 MongoDB简介

1.什么是MongoDB MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。 2.MongoDB特点 MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集

2021-01-08 08:48:45 625

原创 创建线程的两种方式

一、继承Thread类,重写run()方法 步骤: 创建类继承Thread 重写Thread类的run方法 调用线程的start方法(该方法有两个作用:创建线程,调用run方法) 为什么重写run方法? Thread类用于描述线程,该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run() 二、实现Runnable接口 步骤: 定义类实现Runnable接口 覆盖Runnable接口的run()方法 将线程要运行的代码存放在该run()方法中 通过Thread类建立线程对象 将Runna

2021-01-07 19:19:20 295

原创 rocketMQ 3W1H

what? RocketMQ是阿里参照kafka(卡夫卡)思想设计的开源的使用java开发的一套消息中间件产品,主要是用于分布式场景下服务之间的通信。 why? 相比http这种同步通信协议,mq是一套异步通信框架,可以用于服务之间的异步通信。这样的话,我们就可以使用MQ来削峰填谷、分布式事务等。 where? 主要是用于分布式场景下,服务之间做异步通信的时候来使用。比如在乐优商城中,商品上架的时候需要更新ES索引库的索引数据的,这时候商品微服务就需要异步通知搜索微服务来更新索引数据。 how? 我们使用s

2021-01-06 10:31:53 95

原创 创建springboot项目

第一种方式: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> 第二种方式: <dependencyManagement>

2020-12-29 11:23:07 178

原创 事务的介绍

1.1.什么是事务? 当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不进行执行,这个时候需要用到事务。 刘德华《无间道》:去不了终点,回到原点 回顾一下数据库事务的四大特性ACID: 原子性(Atomicity) 要么都执行,要么都不执行 一致性(Consistency) 事务前后的数据都是正确的 隔离性(Isolation) 事物之间相互

2020-12-24 10:42:34 193

原创 http常见的请求方式

1、OPTIONS 用来描述了目标资源的通信选项,会返回服务器支持预定义URL的HTTP策略。 2、HEAD 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。 3、GET 从指定资源中请求数据。使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响。 4、POST 向指定资源提交数据进行处理请求。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中.

2020-12-22 16:12:25 97

原创 常见的数据结构有哪些?

数组 数组是最常用的数据结构,数组的特点是长度固定,可以用下标索引,并且所有的 元素的类型都是一致的。 列表 列表和数组很相似,只不过它的大小可以改变。列表一般都是通过一个固定大小的 数组来实现的,并且会在需要的时候自动调整大小。列表里可以包含重复的元素。 集合 集合和列表很相似,不过它不能放重复的元素。 堆栈 堆栈后入先出,它只能在一个表的一个固定端进行数据结点的插入和删除操作。 队列 队列跟堆栈有些相似,不同之处是先进先出,在队列里第一个插入的元素也是第一个被删除 的元素。 链表 链表是一种由多个节点组

2020-12-21 20:04:49 332

原创 Java 中的异常体系和解决方式?

在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 Throwable 类。 Throwable: 有 两个重要的子类: Exception(异常) 和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大 量子类。 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编 写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java 虚拟机运行 错误(Virtual MachineError),.

2020-12-19 10:44:57 96 1

外卖平台对接API调研.docx

调研美团、饿了么、口碑外卖

2021-06-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除