2010-01-20 52 views
2
<bean id="data.emf" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" > 
    <property name="persistenceUnitName" value="transactions-optional" /> 

</bean> 

從我所知道的默認情況下,所有的bean都是單例(根據文檔),但我仍然得到重複創建entitymanagerfactory。是否有任何參數我可以在春天3.0以上的bean設置爲強制單身?這個問題只出現在GAE製作,託管模式,沒有問題spring 3.0 force singleton bean

+0

似乎不足爲奇。什麼讓你覺得你得到重複? – John 2010-01-20 11:45:55

+0

請參閱我的日誌這裏http://stackoverflow.com/questions/2093913/google-app-engine-compass-caused-entitymanagerfactory-error – cometta 2010-01-20 11:49:10

+0

也許默認範圍是在你的配置改變的地方? – Roman 2010-01-20 12:04:09

回答

4

可以強制bean是這樣的單身:

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

您一般不需要這麼做,但由於singleton是默認範圍,並且無法更改默認值。

春季DEBUG級別的日誌將產生條目每一個bean實例化的時間,所以必須經過那裏看看,看看何時何地你的bean正在處理中。

+0

我試過設置範圍=「單身」,但仍然得到相同的錯誤。我發佈了完整的日誌轉儲http://codepaste.net/bnwtyh。我可以知道我需要在日誌 – cometta 2010-01-20 13:24:46

0

也許問題不來形成的範圍。你確定你沒有在程序的另一個地方定義另一個bean(例如註釋)還是另一個上下文文件?註釋這個bean的定義,並試着在沒有在這裏聲明它的情況下找到它的一個實例。

+0

中尋找什麼,我已經嘗試過在整個應用程序中搜索關鍵字「transactions-optional」。沒有結果=( – cometta 2010-01-22 03:31:35

+0

以及「data.emf」,entitymanagerfactory關鍵字。僅在xml文件中 – cometta 2010-01-22 03:42:01

相關問題