基于Eclipse开发轻量级Spring插件 - 编程入门网
理组件、调试器支持,等等。幸好,Eclipse提供了这些功能,但是,具有这种级别支持的服务器端框架并不存在(据我所知)。
注释3-Eclipse插件比较 比较于Eclipse插件,我一直把该插件称作是轻量级的,但是你可能疑惑:凭什么说它们是轻量级的?其实,我使用术语"轻量级"术语主要是强调,实现一种基于插件的架构的主要优点是相当轻快和简单的。 Eclipse工程基于一种具有工业强度的插件架构。因此,我认为,把稍微扩展Spring框架功能的插件架构与一种具有丰富特征的插件实现进行比较是很有价值的。 多个类加载器支持 Eclipse工程具有一种复杂的类加载模型,这区别于(但非完全不同于)一种应用程序服务器的使用类加载器层次的方式。既然Eclipse鼓励第三方进行插件开发,那么很可能存在具体类的命名和版本冲突问题。 通过不支持同一个类的多个版本,轻量级方法则可以完全避免这个问题。例如,对于我所工作的应用程序来说,这就是一种合理的约束,因为我们主要使用插件来提供一种可信的升级功能。我们只是或多或少控制我们想使用哪些版本和jar文件;因此,我们不需要多个类加载器支持。 基于Eclipse开发轻量级Spring插件(4)时间:2011-01-04 天极 朱先忠Manifest和其它Meta信息 Eclipse插件提供了一种详细的manifest-它负责不仅提供有关一个插件扩展了哪些扩展点的信息而且还提供有关它如何依赖于其它插件的信息。在运行时刻,你可以浏览该插件仓库以发现插件并且遍历它们的依赖性。Eclipse鼓励使用一种"懒惰式"插件加载模型。当实现一个扩展点时,你必须显式地查找扩展它的那个插件;并且,典型地,你仅加载你需要的那些插件。这种方案减少了启动时间并且能够防止因加载不用的对象而造成资源浪费。 Meta信息也是很重要的,Eclipse可以使用它来强制实现你的声明。Eclipse能够通知你有关丢失的相关性信息,告诉你使用相同的扩展点时何时你有太多或太少的插件,等等。 借助于轻量级插件,你不必拥有一个正常的manifest,它允许你以编程方式存取你依赖的内容,而且所有的你的插件在运行时刻加载,只是你必须自己来进行任何类型的检查。 如果不使用一种显式的依赖性列表,那么,你必须或者把所有你对于第三方的依赖性打包到你的插件jar中或者假定一种第三方类的基本集合总是位于客户环境中。如果你忘记一些东西,那么你就会遇到典型的挑战-确定丢失了哪些jar文件。 在实践中,我经常需要决定是否要构建第三方库(如果它是顾客特定的jar,那么,典型情况下,我都把它们嵌入到这个插件jar中;如果我使用一种标准的开源包,例如Jakarta commons,那么我会经常把它添加到核心应用程序中)。当轻量级过于"轻量级"并且你不能以一种ad-hoc方式来管理这些类型的依赖性时,作好调用判断确实更为重要。 至于其它的manifest相关数据,你可以通过提供一种轻量级的manifest来扩展PluginBeanFactoryPostProcessor.java以便跟踪具有插件的bean。你还可以使用该信息来强制实施一些约束规则。 在服务器端开发中,构建的EJB、JSP/Servlet等组件并不是以真正插件的形式出现的,它们都要求真正的工作以便定义和归档一个扩展点。因此,把一切都当作一个插件可能会增加大量工作,因为大多数J2EE工程师可能对此不太熟悉。 我总是试图把插件作为一种工具来实现特定领域的定制目的。同样地,利用Spring创建轻量级的与你的现有应用程序和技术无缝接合的插件就成为极其紧迫的任务。注意,在大部分情况下,你的应用程序通常是一种比较独立的Spring/J2EE应用程序。 另外,你还应该熟悉一些可选择的插件框架。特别是那些经常在http://jpf.sourceforge.net/上发布的Java插件框架工程。我从来没有使用这些框架来确定是否它能 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |