java如何在一次请求的不同业务方法中共享数据

Java后端web服务,对于某次前端请求,可能需要执行多个不同的业务方法才能处理完成。

这些不同的方法在做业务处理时可能需要多次操作某一数据,我们常规的做法是把该数据通过参数传递给方法,或者在方法需要该数据时从数据库获取。

前者迫使我们改变方法签名,后者加重数据库负担,因此都不是理想的做法。

实际上,我们可以在Controller或者Service类中定义一个ThreadLocal<T>变量,在首次拿到数据后,通过set方法将数据保存到变量中,在这之后被调用的方法中就可以用get方法得到这份数据。ThreadLocal<T>变量是线程内共享的,不同的线程之间不会相互影响,线程执行完以后数据会自动释放。

guest
1 评论
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Vector
Vector
7 天 之前

其实就是使用ThreadLocal这个类

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部