Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring3.0强制单例bean_Java_Spring_Google App Engine_Jpa - Fatal编程技术网

Java Spring3.0强制单例bean

Java Spring3.0强制单例bean,java,spring,google-app-engine,jpa,Java,Spring,Google App Engine,Jpa,据我所知,默认情况下,所有bean都是单例的(根据文档),但不知何故,我仍然得到了entitymanagerfactory的重复创建。在Spring3.0中,我可以为上面的bean设置任何参数来强制singleton吗?问题只出现在gae生产中,在托管模式下,没有问题您可以强制bean成为如下所示的单例: <bean id="data.emf" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" >

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

您可以强制bean成为如下所示的单例:

<bean id="data.emf"
  class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"  >
  <property name="persistenceUnitName" value="transactions-optional" />

 </bean>

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


每次实例化一个bean时,Spring调试级别日志都会生成条目,因此请仔细查看一下,看看您的bean在何时何地被处理。

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

似乎令人惊讶。是什么让你认为你得到了重复的内容?请看我的日志这里也许默认的作用域在你的配置中的某个地方被更改了?@Roman,是我测试中唯一使用的xml配置。没有其他xml文件可以解决这个问题吗?我也面临同样的问题。我尝试设置scope=“singleton”,但仍然得到相同的错误。我发布了完整的日志转储。我可以知道我需要在logi中查找什么吗?我已经尝试在整个应用程序中搜索关键字“transactions optional”。无结果=(以及“data.emf”,entitymanagerfactory关键字)。仅在xml文件中
<bean scope="singleton" ... >
</bean>