ThreadLocal使用场景有哪些?

ThreadLocal使用场景有哪些?,第1张

ThreadLocal使用场景有哪些?

ThreadLocal使用场景有哪些?

ThreadLocal的应用场景

1、方便同一个线程使用某一对象,避免不必要的参数传递;

2、线程间数据隔离(每个线程在自己线程里使用自己的局部变量,各线程间的ThreadLocal对象互不影响);

3、获取数据库连接、Session、关联ID(比如日志的uniqueID,方便串起多个日志);

其中spring中的事务管理器就是使用的ThreadLocal:

Spring的事务管理器通过AOP切入业务代码,在进入业务代码前,会依据相应的事务管理器提取出相应的事务对象,假如事务管理器是DataSourceTransactionManager,

就会从DataSource中获取一个连接对象,通过一定的包装后将其保存在ThreadLocal中。而且Spring也将DataSource进行了包装,重写了当中的getConnection()方法,或者说

该方法的返回将由Spring来控制,这样Spring就能让线程内多次获取到的Connection对象是同一个。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/5381624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-10
下一篇 2022-12-10

发表评论

登录后才能评论

评论列表(0条)

保存