Nutch插件机制详解(三)

 

七、插件的典型调用方式 :

Java代码 

     

    八、插件类加载机制 :

     

        实际整个系统如果使用了插件架构,则插件类的加载是由 PluginClassLoader 类完成的,每个 Plugin 都有自己的 classLoader,此 classloader 继承自 URLClassLoader,并没有做任何事情:

    Java代码 

       

       

      这个 classloader 是属于这个插件的,它只负责加载本插件相关的类、本地库和依赖插件的发布 (exported) 库,也包括一些基本的配置文件例如 .properties 文件。

       

      此类的实例化过程:

      Java代码  

          *  首先判断缓存是否存在

          * 加载需要的 Jar 包、自身需要的 Jar 包,依赖插件发布的 Jar 包

          * 加载本地的 properties 文件

          * 构造此 classloader,父 classloader 为 PluginDescriptor 的加载者,通常是 contextClassLoader

       

       

      九、总结 :

          Nutch 是一个非常出色的开源搜索框架,它的插件架构更加是它的一个技术亮点,通过此架构,可以保证 Nutch

      方便的被灵活的扩展而不用修改原来的代码,通过配置文件可以简单方便的控制加载或者不加载哪些插件,而且这些

      都不需要额外的容器支持。这些都是我们在系统架构设计的时候可以学习和参考的有益经验。

       

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值