2010-06-16 71 views
2

我開始深入研究在RCP應用程序中使用Spring DM和OSGi服務。我創建了一個由RCP應用程序中的另一個包使用的服務。它通過調用getBundleContext()。getServiceReference()使用顯式的包名稱和服務類名稱來查找服務。我還沒有在任何地方使用DI。我遇到的問題是請求包中返回的服務是單例。有時我會注意到線程問題,因爲它是一種「有狀態」的服務。如何配置應用程序以便在每次調用時獲取新的服務實例?如何爲每次調用的新實例配置Spring-DM OSGi服務?

這裏是我的春天xml文件內容註冊服務:一般

<bean id="myServBean" class="com.xyz.ClassImpl"/> 
<osgi:service ref="myServBean" class="com.xyz.Class"/> 

回答

2

OSGi服務可以同時被多個客戶端調用。 OSGi開箱即可支持的唯一方法是使用ServiceFactory,它允許您爲每個調用的客戶端軟件包返回一個不同的實例。沒有標準的機制來爲每個方法調用創建一個新的實例。你必須自己處理你的服務實現。

+0

謝謝,這也是我在其他地方閱讀過的並希望證實的內容。 – Bhav 2010-07-06 19:21:58

相關問題