在eclipse rcp中使用spring架構

來源:互聯網
上載者:User

很久就想了如何在Rcp程式中使用Spring。讓Spring容器來管理我們rcp程式中的Beans。看到web項目中使用了spring後帶來的好處(最直接的就是看到代碼量少了)就一臉的憧憬。想我的好日子什麼時候才會來啊。

有這個憧憬後我就開始考慮改如何做了。大家肯定都知道如果在eclipse rcp程式中使用直接使用spring的beanfactory無論你是使用方式都會說找不到設定檔的。這個其中的原因是Eclipse 的每個外掛程式都使用他們自己的類載入器(class load)

說明:eclipse中類的詳細的裝載過程可以產考《Contributing to eclipse 中文版》p44。

所以說能夠正確的找到bean的設定檔成了一個難題。還有一個問題就是如何管理BeanFactory也是一個問題。既然提出了這兩個問題,那就的一個一個的面對啊。第一個問題的解決方式。只要通過一個外掛程式中的類就可以獲得。

我試了一下通過如下代碼可以切換class load。最頭疼的問題就是如何來管理spring的BeanFactory。如果在每個Plugin類的繼承類裡都加上對beanfactory的建立。想想都是很噁心的事情。就為這個事情一直停滯不前。搞的我快鬱悶死掉了。

就在快死還沒有死的時候看到了一個叫EclipseSpring項目(http://sourceforge.net/projects/eclipse-spring/)。一看超爽。他直接把我想做的事情直接給做了。

下面我們就來看看一下他的發布包裡代的那個例子。這個例子很簡單。就只是提供了一個view。View裡顯示一個條問候語。

呵呵,是不是很介面太簡單了。這個我們就不說了。我們來說說他這個樣本中到底是怎麼實現的。

先看看他的plugin.xml檔案把。

看看那個org.eclipse.ui.view那個擴充點。是不是有點奇怪啊。他的類是net.sourceforge.eclipsespring.SpringExtensionFactory:example/userNameView這個樣子的。一言看上去就不是一個類。而是一個類代了點參數。

不過可以斷定他就是上圖顯示的view了。

在看看上面那個擴充點

<extension
point="net.sourceforge.eclipsespring.beanFactoryContributors">
<beanFactoryContributor
class="net.sourceforge.eclipsespring.example.spring.BeanFactoryContributor"
id="example"/>
</extension>

這個擴充點幹嗎用的啊。嗯是一個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.