Java Spring如何使用ThreadLocal变量

Java Spring如何使用ThreadLocal变量,java,multithreading,spring,entitymanager,thread-local,Java,Multithreading,Spring,Entitymanager,Thread Local,我想知道Spring如何使用线程局部变量的一些细节 在管理实体管理者方面 我的模型如下: @Transactional public class MyClass { @PersistenceContext private EntityManager entityManager; public void toSomethingTx() {...} } 让我们考虑上面的类,是一个用@事务注释的类,使用一个实体管理器, 当实体管理器被注入时,被注入的实际上是一个代理类

我想知道Spring如何使用线程局部变量的一些细节 在管理实体管理者方面

我的模型如下:

@Transactional
public class MyClass 
{
  @PersistenceContext
  private EntityManager entityManager;

    public void toSomethingTx()  
    {...}
}

让我们考虑上面的类,是一个用@事务注释的类,使用一个实体管理器, 当实体管理器被注入时,被注入的实际上是一个代理类 它在ThreadScope中查找实际的entitymanager来传播调用

这样,管理用户请求的每个线程都绑定到自己的实体管理器

如果您能验证我的模型和/或添加更多关于此的信息,那就太好了。
感谢java ThreadLocal机制上的Spring relay,请参见以下内容:


请注意,如果您在代码中使用ThreadLocal,您必须在不需要时管理数据擦除,以避免内存泄漏。

对什么进行向下投票?问题可能有点太大了,我想+请在那里多放一些代码。浏览页面:要求提供事物列表、民意调查、意见、讨论等。我希望我改进了问题,谢谢。如果你投了反对票,请留下理由。这样大家都学会了,谢谢!好的,现在通过代码我意识到我不太理解你的问题。很抱歉