是否有可能在Eclipse插件中爲DI使用Spring容器?在Eclipse插件中可以使用Spring嗎?
我不知道,因爲我知道,Eclipse會導致很多問題與類加載的插件中查找的東西,等
插件旨在分發作爲一個JAR。
是否有可能在Eclipse插件中爲DI使用Spring容器?在Eclipse插件中可以使用Spring嗎?
我不知道,因爲我知道,Eclipse會導致很多問題與類加載的插件中查找的東西,等
插件旨在分發作爲一個JAR。
是的,但你需要春天DM http://www.springsource.org/osgi
答案是肯定的。你可以使用Spring DM,但是你不需要。它可能更好。
我沒有使用Spring DM,主要關心的是類加載問題(不確定Spring DM是否解決了這個問題,但我猜它應該)。假設你將Spring JAR捆綁在一個獨立的插件中,你需要使用調用插件的類加載器加載上下文。
例子:
插件A依賴於B.當插件A開始,它將加載應用程序上下文,當調用此加載時,您需要執行類似操作:
Thread.currentThread().setContextClassLoader(PluginAActivator.class.getClassLoader())
因此,類的加載將在您自己的類加載器下進行。現在,您可以使用ClassPathXmlApplicationContext
從類路徑加載配置XML。
一個小提示:默認ClassPathXmlApplicationContext
在加載時驗證您的XML。您可能想要禁用它,或者將XML指向本地模式(而不是Springframework.org上的標準Spring模式),否則,在加載和離線工作時將連接到互聯網以下載模式文件將失敗。
你有一個你的文章的代碼示例? 這會很棒,因爲我一直在這裏閒逛。
乾杯!
在OSGi內部使用普通彈簧會導致你很多痛苦。如果你打算繼續使用Spring和OSGi,我強烈建議你轉到Spring DM。 – SteveD 2009-09-30 12:04:23
如果使用Spring DM,則不需要在代碼中管理上下文類加載器,也不會再手動創建應用程序上下文。 – SteveD 2009-09-30 12:05:34