【问题标题】:spring 3.0 force singleton beanspring 3.0 强制单例 bean
【发布时间】:2011-01-07 05:53:25
【问题描述】:
<bean id="data.emf"
  class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"  >
  <property name="persistenceUnitName" value="transactions-optional" />

 </bean>

据我所知,默认情况下所有 bean 都是单例的(根据文档),但不知何故我仍然会重复创建 entitymanagerfactory。我可以在 spring 3.0 中为上面的 bean 设置任何参数来强制单例吗?该问题只出现在 gae 制作中,在托管模式下,没问题

【问题讨论】:

标签: java spring google-app-engine jpa


【解决方案1】:

您可以像这样强制 bean 成为单例:

<bean scope="singleton" ... >
</bean>

不过,您通常不需要这样做,因为 singleton 是默认范围,并且无法更改默认值。

Spring DEBUG 级别的日志将在每次实例化 bean 时生成条目,因此请通过那里查看 bean 的处理时间和位置。

【讨论】:

  • 我尝试了 set scope="singleton" 但仍然遇到同样的错误。我发布了完整的日志转储codepaste.net/bnwtyh。我可以知道我需要在日志中查找什么
【解决方案2】:

也许问题不在范围内。您确定您没有在程序的另一个位置(例如使用注释)或另一个上下文文件中定义另一个 bean 吗?注释该 bean 定义并尝试它是否可以找到它的实例而不在这里声明它。

【讨论】:

  • 我已经尝试在整个应用程序中搜索关键字“transactions-optional”。没有结果=(
  • 以及“data.emf”,entitymanagerfactory 关键字。仅在 xml 文件中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
相关资源
最近更新 更多