- 博客(8)
- 收藏
- 关注
原创 服务端JWT实现token
token是一种令牌、标志,让服务端知道访问它的是谁是哪个用户,而不是笼统以为是前端访问它。服务端将token签发给登录成功的用户,在他下次访问服务端的时候带上他的token,服务端通过解析token获得用户信息。token需要签名,对token进行加签操作保证token的合法性而不是被恶意攻击者伪造的token。token是有过期时间的,不推荐签发一个永久token。因为我们把token交给前端后,我们不能保证会发生什么,最合理的方式是每过一段要求用户登录一次。
2023-08-15 13:42:14
202
1
原创 knife4j文档入门指南
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。而knife4j是集Swagger2 和 OpenAPI3 为一体的增强解决方案,增强扩展有了基于Springfox框架+Swagger2规范的自动注入的starter,可以说是非常方便。简单来说,knife4j能方便后端程序员实现一份提供前端程序员或者其他开发者调用的接口文档,在接口更新后能及时更新,避免文档书写不及时带来交流的成本。当然,写一个好看的文档也是愉悦大家的心情。
2023-08-09 10:43:37
694
2
原创 多线程并发笔记(五):线程的几种方法
1.join()方法,一种让其他线程“插队”的方法。在一个线程内,调用“另一个线程.join()”方法,就会阻塞当前线程直到另一个线程运行完毕,形象地说就是让另一个线程插自己的队。public class joinThread { public static void main(String[] args) throws InterruptedException { System.out.println(Thread.currentThread().getName()+"开
2022-04-12 14:46:27
118
原创 多线程并发学习笔记(三):死锁问题
锁在嵌套使用时容易发生死锁现象。当一个线程Thread-0获取了A锁,同时执行的线程Thread-1获取了B锁。在接下来运行的代码中Thread-0需要获取B锁才能继续执行,而Thread-1需要获取A锁才能执行,但是A、B锁已经被他们分别获取了。两个线程都只有一个锁,都阻塞不能运行,也没有释放锁。这导致Thread-0、Thread-1两个线程无法正常完成任务,这就是死锁。死锁现象的示例代码如下:public class deadLock implements Runnable{ Ree
2022-04-05 21:26:01
457
2
原创 多线程并发学习笔记(一):创建新线程的四种方式
什么是多线程?通俗来说,一个.exe文件就是一个进程,一个进程可以包括多个线程。线程可以同时执行,每个线程处理不同的模块。比如在一个文本编辑器中,线程1用来接受用户键盘输入的数据,线程2显示数据到界面上,线程3保存数据,如果变成单线程,用户要输完数据后才能看见输入的数据并保存,用户体验非常不好。又比如服务器端响应浏览器请求时要完成多个文件下载,这也需要多线程。———————————————————————————————————————————创建新线程的四种方式1.继承Thread类
2022-04-04 11:34:03
1196
原创 lambda表达式与函数式接口
lambda表达式时一个可传递的代码块,可以在以后执行一次或多次。lambda表达式的语法:(传入参数,传入参数......)->一个表达式或者一段代码块例如:(String first,String second)->first.length()-second.length();(String first,String second)->{ if(first.length()<second.length())return -1; else if
2022-04-03 17:09:42
561
空空如也
启动springboot项目报错
2022-11-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人