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

hy

hy

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

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

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

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

0 0 vote
Article Rating
guest
0 评论
Inline Feedbacks
View all comments
0
可以表达一下你的观点哟 ^_^x
()
x