邋遢居

          我的Java天堂

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks
          ???????????????????????????????? 在eclipse rcp中使用spring框架

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

          有這個憧憬后我就開始考慮改如何做了。大家肯定都知道如果在eclipse rcp程序中使用直接使用springbeanfactory無論你是使用方式都會說找不到配置文件的。這個其中的原因是Eclipse 的每個插件都使用他們自己的類加載器(class load

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

          所以說能夠正確的找到bean的配置文件成了一個難題。

          還有一個問題就是如何管理BeanFactory也是一個問題。

          既然提出了這兩個問題,那就的一個一個的面對啊。

          第一個問題的解決方式。只要通過一個插件中的類就可以獲得。

          我試了一下通過如下代碼可以切換class load

          最頭疼的問題就是如何來管理springBeanFactory。如果在每個Plugin類的繼承類里都加上對beanfactory的創建。想想都是很惡心的事情。就為這個事情一直停滯不前。搞的我快郁悶死掉了。

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

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

          呵呵,是不是很界面太簡單了。這個我們就不說了。我們來說說他這個示例中到底是怎么實現的。

          先看看他的plugin.xml文件把。

          pluginxml.jpg

          看看那個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>

          這個擴展點干嗎用的啊。嗯是一個問題。

          插件文件下面除了一個plugin.xml文件外。還有一個bean.xml的文件。
          springdiagram.jpg

          這下一看,明白了她就一個spring需要的配置文件。并包括了對view的申明。

          net.sourceforge.eclipsespring.beanFactoryContributors這個名字可以看出他是對beanFactory做了一個擴展。

          去這個類看一下,是怎么回事。

          只是發現了
          getresource.jpg
          一看可以知道。它在這里初始化了spring的配置文件。
          這個插件項目的整個類圖為
          classes.jpg

          稍微回顧一下。在一個plugin中要有BeanFactoryContributorspring配置文件合上net.sourceforge.eclipsespring插件就可以使用spring了。

          關于在這個過程中beanFactory如何創建,和擴展點如何被調用。我會在下一篇里說明。今天想睡了,雖然有點早。呵呵
          posted on 2006-03-23 22:18 Jet Geng 閱讀(4001) 評論(0)  編輯  收藏 所屬分類: Eclipse
          主站蜘蛛池模板: 界首市| 葵青区| 滨州市| 云安县| 廉江市| 定襄县| 阿坝县| 汕尾市| 都安| 岗巴县| 文山县| 上饶县| 天长市| 盐城市| 太仆寺旗| 酉阳| 边坝县| 兴城市| 黄大仙区| 宁南县| 永安市| 平罗县| 建阳市| 东城区| 东平县| 黄龙县| 哈尔滨市| 铜川市| 江源县| 金门县| 邹城市| 临桂县| 平南县| 万宁市| 长宁县| 枣阳市| 安吉县| 文水县| 泾川县| 安龙县| 奉贤区|