日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Eclipse RCP+Spring建胖客戶端Web程序

系統(tǒng) 1946 0
? 三. 把Spring Remoting添加到你的應(yīng)用程序

  下面,我們把Spring添加到你的Eclipse豐富的客戶端以便它向前一篇文章中的StockTradeServer工程發(fā)出請(qǐng)求。

  首先,當(dāng)開(kāi)發(fā)Eclipse插件/RCP應(yīng)用程序時(shí),添加第三方庫(kù)的推薦的方法是通過(guò)另外一個(gè)插件。這樣做以后,你就不需要把這些第三方j(luò)ars添加到你創(chuàng)建的每個(gè)工程。而是,你僅建立你的插件/RCP工程和第三方庫(kù)工程之間的某種依賴性。首先,我們假定你熟悉Eclipse的classloader。要點(diǎn)是,你必須采取一些額外的步驟來(lái)確保你的類在插件依賴性之間能夠彼此找到對(duì)方:

  1. 在Eclipse中創(chuàng)建一個(gè)新的插件工程。并命名這個(gè)新工程為SpringClient。然后,設(shè)置如下值:

ID = SpringClient
Class = springClient.SpringClientPlugin

  在填充Plug-in屬性后,點(diǎn)擊Finish。對(duì)于SpringClient插件工程,你不需要任何模板,因?yàn)槠渲饕康氖谴鎯?chǔ)Spring庫(kù)和任何Spring相關(guān)的服務(wù)類。

  2. 在你的解壓的spring-framework-1.2.8發(fā)行包中,你會(huì)找到下列jar文件:

  ·spring-aop.jar-在文件夾dist下

  ·spring-beans.jar-在文件夾dist下

  ·spring-context.jar-在文件夾dist下

  ·spring-core.jar-在文件夾dist下

  ·spring-remoting.jar-在文件夾dist下

  ·commons-logging.jar-在文件夾lib\jakarta-commons下

  ·log4j-1.2.13.jar-在文件夾lib\log4j下

  然后,把它們?nèi)繌?fù)制到你的SpringClient根目錄下。

  3. 在Eclipse的包資源管理器中,右擊SpringClient以打開(kāi)工程屬性。選擇"Java Build Path",點(diǎn)擊"Libraries"選項(xiàng)卡,并且把剛才你通過(guò)按鈕"Add JARs"添加的所有的那些jar文件加入。請(qǐng)確保你也導(dǎo)入了這些庫(kù)!點(diǎn)擊"Order and Export"選項(xiàng)卡,并且檢查所有的庫(kù)(見(jiàn)圖9)。通過(guò)這樣做,你就可以確保,當(dāng)你創(chuàng)建對(duì)SpringClient的一種工作依賴性時(shí),spring和log jars也是可用的。此后,點(diǎn)擊OK。

Eclipse RCP+Spring建胖客戶端Web程序
圖9.輸出第三方庫(kù)

  4. 現(xiàn)在,你要修改SpringClient的manifest。在包資源管理器中,展開(kāi)SpringClient->META-INF并且打開(kāi)MANIFEST.MF。點(diǎn)擊"Runtime"選項(xiàng)卡并且點(diǎn)擊Classpath部分的"Add"。全選Spring jars和logging jars并且點(diǎn)擊OK?,F(xiàn)在,在"Exported Packages"節(jié)中,點(diǎn)擊Add。選擇所有的包以便導(dǎo)出,并點(diǎn)擊OK(見(jiàn)圖10)。

Eclipse RCP+Spring建胖客戶端Web程序
圖10.把第三方庫(kù)添加到插件Classpath并導(dǎo)出包

  我以前提及過(guò),Eclipse的classloader經(jīng)常引起問(wèn)題。為了補(bǔ)救這一點(diǎn),你可以點(diǎn)擊MANIFEST.MF選項(xiàng)卡并且添加下面一行:

  Eclipse-BuddyPolicy: registered

  5. 現(xiàn)在,讓我們添加spring配置文件。在Package Explorer中,轉(zhuǎn)到src目錄,創(chuàng)建一個(gè)新文件applicationContext.xml,并且加入下列內(nèi)容:

Eclipse RCP+Spring建胖客戶端Web程序

  在src目錄下,另外創(chuàng)建一個(gè)新文件beanRefFactory.xml并且加入下列內(nèi)容:

Eclipse RCP+Spring建胖客戶端Web程序

  不必感到驚訝,這些配置文件與你對(duì)stocktradeserver工程進(jìn)行單元測(cè)試時(shí)使用的spring配置文件是相同的,除了你重命名了applicationContext.xml以外。

  6. 為了簡(jiǎn)化問(wèn)題,你可以把類從stocktradeserver工程復(fù)制到SpringClient的src目錄下。在SpringClient的src目錄下面,創(chuàng)建包stephenlum.services.stock和stephenlum.services.stock.dto。

  如果你還沒(méi)有準(zhǔn)備好,你可以下載本文源碼或參考我的前一篇文章并且復(fù)制stephenlum.services.stock下的類StockService.java。然后,復(fù)制在stephenlum.services.stock.dto下的類StockDTO.java(見(jiàn)圖11)。

Eclipse RCP+Spring建胖客戶端Web程序
圖11.完成上面操作后的Package Explorer看上去的樣子

  7. 把代碼添加到類SpringClientPlugin以裝載Spring的應(yīng)用程序上下文。注意,你要把該代碼添加到構(gòu)造器中。下面是新的SpringClientPlugin類:

package springClient;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.access.BeanFactoryLocator;
import org.springframework.beans.factory.access.BeanFactoryReference;
import org.springframework.beans.factory.access.SingletonBeanFactoryLocator;
/**
*應(yīng)用于桌面的主插件類。
*/
public class SpringClientPlugin extends AbstractUIPlugin {
 private BeanFactory beanFactory;
 //共享實(shí)例.
 private static SpringClientPlugin plugin;
 /**
 *構(gòu)造器.
 */
 public SpringClientPlugin() {
  plugin = this;
  BeanFactoryLocator beanFactoryLocator = SingletonBeanFactoryLocator.getInstance();
  BeanFactoryReference beanFactoryReference = beanFactoryLocator.useBeanFactory("ctx");
  beanFactory = beanFactoryReference.getFactory();
 }
 /**
 *在插件激活時(shí)調(diào)用這個(gè)方法
 */
 public void start(BundleContext context) throws Exception {
  super.start(context);
 }
 /**
 *當(dāng)停止插件時(shí),調(diào)用這個(gè)方法
 */
 public void stop(BundleContext context) throws Exception {
  super.stop(context);
  plugin = null;
 }
 /**
 *返回共享實(shí)例.
 */
 public static SpringClientPlugin getDefault() {
  return plugin;
 }
 /**
 *返回在給定的插件相對(duì)路徑下的圖像文件的一個(gè)圖像描述符
 * @param path-路徑
 * @返回圖像描述符
 */
 public static ImageDescriptor getImageDescriptor(String path) {
  return AbstractUIPlugin.imageDescriptorFromPlugin("SpringClient", path);
 }
 public BeanFactory getBeanFactory() {
  return beanFactory;
 }
}

  8. 最后,添加依賴性以實(shí)現(xiàn)工程EclipseTradeClient依賴于你的新插件工程SpringClient。在工程EclipseTradeClient中,打開(kāi)plugin.xml并且點(diǎn)擊"Dependencies"選項(xiàng)卡。在"Required Plug-ins"節(jié)中,點(diǎn)擊Add,選擇"SpringClient(1.0.0)",并且點(diǎn)擊OK(見(jiàn)圖12)。

Eclipse RCP+Spring建胖客戶端Web程序
圖12.把SpringClient添加為一個(gè)要求的插件

  現(xiàn)在,你必須在EclipseTradeClient manifest文件中添加與Eclipse的伙伴策略相關(guān)的內(nèi)容。在文件plugin.xml中,點(diǎn)擊MANIFEST.MF選項(xiàng)卡并且添加下列入口:

  Eclipse-RegisterBuddy: SpringClient

Eclipse RCP+Spring建胖客戶端Web程序


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 读书| 双峰县| 忻州市| 思南县| 公主岭市| 昭通市| 昌黎县| 莱州市| 东城区| 长白| 永春县| 兰坪| 赤壁市| 库伦旗| 电白县| 凤城市| 永顺县| 四川省| 视频| 塘沽区| 武宣县| 楚雄市| 阿拉尔市| 禹城市| 资阳市| 崇文区| 托克逊县| 拉孜县| 大安市| 五台县| 泽普县| 太原市| 柏乡县| 通渭县| 普定县| 克东县| 固安县| 宕昌县| 汉川市| 常熟市| 北碚区|