ThreadLocal的其他应用

简介: request对象跟PageHelper

spring框架使用ThreadLocal存储每个线程的request对象

不同请求会封装不同的request对象。

例如:查询的请求来到后端spring框架,spring会将当前线程请求放到ThreadLocal存储,

那么使用request对象就从ThreadLocal获取使用;如果是删除请求,请求来到后端spring框架就会将删除请求request对象存储到当前线程的ThreadLocal中。

PageHelper
pageHelper分页组件底层使用ThrealLocal存储当前页码和每页大小, 同一个线程内mapper执行分页的sql时执行limit关键字需要当前页码和每页小,就是从ThreadLocal里面获取的

PageHepler 其实limit的时候也是通过threadlocal去传递page跟pageSize的

我们用分页插件的时候 我们自己只写了一个sql语句就是根据条件查询所有的语句

但是实际上执行的是select count(0) limit ,?

为什么 就是因为pageHelper底层是通过threadLocal临时变量去做到的

那为什么我们要用page集合去接收数据 不用普通的list

是因为page集合的可以告诉我们每一页有多少数据 但是list不能

相关文章
|
存储 安全 Java
【ThreadLocal】
【ThreadLocal】
|
5月前
|
Java
ThreadLocal 场景题
ThreadLocal 场景题
37 1
|
6月前
|
存储 Java 数据管理
ThreadLocal的使用
`ThreadLocal`是Java中的线程局部变量工具,确保每个线程都有自己的变量副本,互不干扰。适用于保持线程安全性数据和跨方法共享数据。基本用法包括创建实例、设置和获取值以及清除值。例如,创建ThreadLocal对象后,使用`.set()`设置值,`.get()`获取值,`.remove()`清除值。注意ThreadLocal可能引起内存泄漏,应适时清理,并谨慎使用以避免影响代码可读性和线程安全性。它是多线程编程中实现线程局部数据管理的有效手段。
89 10
|
6月前
|
存储 Java
ThreadLocal 有什么用
ThreadLocal 有什么用
54 0
|
11月前
|
存储
ThreadLocal
ThreadLocal
53 0
|
存储 安全 Java
ThreadLocal介绍和应用
ThreadLocal介绍和应用
66 0
|
缓存 安全 Java
浅谈ThreadLocal
浅谈ThreadLocal
149 0
|
存储 Java
|
存储 Java 数据库连接
对ThreadLocal的一点了解
ThreadLocal是线程变量,它为每个线程提供单独的存储空间。其主要作用是做线程间的数据隔离,也可以用于在同一个线程间方便地进行数据共享。(对于多线程资源共享,加锁机制采用“时间换空间”,ThreadLocal采用“空间换时间”)
130 0