快速业务通道

基于Eclipse开发轻量级Spring插件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
象 // 并且把它们绑定到一起时,我们的bean现在准备好了. List l = (List) pv.getValue(); l.add(new RuntimeBeanReference(pluginBeanName)); }

基于Eclipse开发轻量级Spring插件(3)

时间:2011-01-04 天极 朱先忠

下面展示了配置在Spring中看上去的样子。首先,在你的核心工程中定义扩展点-它是example.craps.Table的一个实例,其中它的两个属性(dice,players)配置以空列表。这是标准的Spring用法:

<beans> <bean id="extension-point.craps.table" class="example.craps.Table" init-method="init"> <property name="dice"> <list> </list> </property> <property name="players"> <list> </list> </property> </bean> </beans>

现在,你可以使用插件类连同它的Spring上下文(这将是自发现的)打包一个jar文件,并且你可以拥有一个类似如下的配置:

<beans> <bean id="real-dice" class="example.craps.RealDice" /> <bean class="platform.spring.PluginBeanFactoryPostProcessor"> <property name="extensionBeanName" value="extension-point.craps.table" /> <property name="propertyName" value="dice" /> <property name="pluginBeanName" value="real-dice" /> </bean> </beans>

在这个Spring配置中定义了一个example.craps.RealDice的实例,然后,它定义你的PluginBeanFactoryPostProcessor(它被配置以找到extension-point.craps.table bean)。这一实例还会把你的real-dice bean添加到craps表的dice属性中。

注意,这是本文中真正的焦点所在。这个到Spring的小扩展就是编写基于插件的组件的所有要求。注意,如果你删除这个包含该Spring上下文的jar文件,那么,你还要从extension-point.craps.table bean中"分离"你的bean。然后,把该jar添加回去,并且把它自己绑定到系统中的适当位置。

五.使用轻量级插件进行开发

我常常吃惊于大多数的架构师团队极少地考虑开发者能否容易地使用他们的框架。其实,EJB就是一种具有学术式优点的极好的例子,但是,其实践中的开发缺点使其变得极为昂贵。所以,我认为,当选用一种框架实现典型的编码/构建/调试工作时,先了解一下该框架具有什么样的负荷能力和影响是非常重要的。

从这种角度来看,轻量级插件则是相当"无痛苦"的。你可以把每一个插件作为它自己的简单地依赖于核心产品的jar的可构建工程。这在一种类似于Eclipse这样的工具(在其中,核心产品具有其自己的Java工程并且每一种插件也都有其自己的)中是很容易建模的。你仅需要一个最终的装配工程-它依赖于核心产品和包括的各种插件工程。通过使装配工程依附于核心和插件工程,你的classpath会被自动地正确构建。本文的下载源码中提供了一个类似这样的工程。记住,你可以为每一种客户创建一个装配工程,从而允许你把不同的插件与不同的客户相匹配。这种方式与Eclipse恰好吻合-允许在调试期间的增长式编译和代码热交换;这使你的开发进程相当灵活-不必要加入完全妨碍Eclipse的本机Java支持的构建步骤。

六.一切都是插件吗?

Eclipse的一个根本特征是,一切都是插件(请参考注释3:Eclipse插件比较)。从系统的初始启动到Java开发环境,再到在线帮助系统,每一种捐献代码(即使不是Java代码的代码)都以一种插件形式存在。这种方式具有其优点,但是它规定了一种工业插件开发环境-具有完整的工具,例如管

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号