【问题标题】:Single instance of an object per transaction每个事务的单个对象实例
【发布时间】:2014-09-29 13:06:11
【问题描述】:

我有一个用例,理论上我认为这是一个已解决的问题。但我无法找到一个确定触发的实现。

  1. 我使用 Apache CXF、Spring 和 Hibernate 创建了一个 RESTful API
  2. 此应用程序包含标准的 Service-Proxy-DAO 分层结构
  3. 我需要在我的服务(或服务前)层实例化一个自定义记录器对象,并初始化一组将保持不变的参数,在大多数情况下通过我的应用程序层和返回的每个调用。李>
  4. 我如何才能为每个单独的服务调用初始化此记录器对象一次,并在我的所有层中使用它,而不必每次都实例化它。我要么在我需要的每个类中注入初始化的对象,要么在这些行中注入一些东西。
  5. 我不想使用静态块,也不想在方法签名中传递对象。

有什么东西可以用作 Spring、CXF 或其他 java 框架的一部分来实现这个用例。

编辑:我会将事务定义为对 Web 服务端点的单个调用,从调用到响应。

【问题讨论】:

标签: spring web-services rest jakarta-ee cxf


【解决方案1】:

ThreadLocal 将是解决您的问题的理想人选。

更新:

创建一个在所有需要此“共享”引用的地方都可用的本地线程将使所有这些上下文都可以访问此资源,而无需传递引用。

请参阅http://www.appneta.com/blog/introduction-to-javas-threadlocal-storage/ - 看起来很好地解释了如何使用本地线程并处理您的问题空间。

【讨论】:

  • 你可能想扩展你的答案
猜你喜欢
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多