【问题标题】:How does Spring uses ThreadLocal variablesSpring如何使用ThreadLocal变量
【发布时间】:2015-11-22 18:19:00
【问题描述】:

我想知道一些关于 Spring 如何使用 Thread local 变量的细节
在管理 EntityManagers 中。

我的模型如下:

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

    public void toSomethingTx()  
    {...}
}

让我们考虑上面的类,它是一个用 @Transactional 注释并使用实体管理器的类,
当注入实体管理器时,注入的实际上是一个代理类
ThreadScope 中寻找实际的实体管理器来传播调用。

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

如果您能验证我的模型和/或添加更多相关信息,那就太好了。
谢谢

【问题讨论】:

  • 对什么投反对票?
  • 我认为问题可能有点过大+请在此处添加更多代码。游览页面:请求事物列表、民意调查、意见、讨论等。
  • 我希望我改进了这个问题,谢谢。

标签: java multithreading spring entitymanager thread-local


【解决方案1】:

java ThreadLocal 机制上的 Spring 中继,见这个:http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html

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

【讨论】:

  • 如果您投了反对票,请留下理由。这样大家就学会了,谢谢!
  • 好的,现在有了代码,我意识到我不太理解你的问题。对不起
猜你喜欢
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
  • 1970-01-01
相关资源
最近更新 更多