`

插件的简单开发原理

阅读更多
以java语言举例来说吧。要想实现插件,基本要符合下面几点要求:
1.宿主系统需要提供对外公开的接口(interface),插件系统创建自己的class,并且要实现公开的interface
public interface PluginClassInterface{
    public void play();
    public void stop();
}

public PluginClass1 implements PluginClassInterface{
    public void play(){
        System.out.println("play");
    }

    public void stop(){
        System.out.println("stop");
    }
}


2.宿主系统需要动态加载插件,java中可以通过下面的方式来加载并实例化对象
Class clazz = Class.forName("my.plugin.PluginClass1");
PluginClassInterface obj = (PluginClassInterface)clazz.newInstance();
obj.play();
obj.stop();


3.为了避免硬编码,宿主系统一般提供一个xml配置文件,把插件相关的信息配置在配置文件中,这样可以根据配置去加载指定的插件,比如:

plugin.xml

<plugins>
    <plugin name="plugin1" classname="my.plugin.PluginClass1" />
    <plugin name="plugin2" classname="my.plugin.PluginClass2" />
</plugins>

举例来说的话,tomcat相当于一个宿主系统,servlet相当于tomcat下面的插件。
tomcat对外提供javax.servlet.Servlet接口,所有的业务servlet都要implements这个接口(当然servlet规范又为我们提供了一个抽象的HttpServlet类,我们可以extends HttpServlet)。然后业务servlet必须配置在web.xml文件中。tomcat通过读取web.xml中的信息来加载servlet,然后有request请求的时候,根据url mapping去调用指定的业务servlet中的service方法(HttpServlet类为我们实现了service方法,所以我们只需要实现doPost和doGet方法既可,service方法里面会根据request的method类型,来替我们调用doGet或者doPost方法)。
分享到:
评论

相关推荐

    ecshop二次开发 47个经典插件开发案例 ecshop

    三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。...

    SSM笔记-插件开发

    SSM笔记-插件开发,插件的作用、原理、编写方法的简单测试

    WordPress插件制作视频教程

    WordPress插件制作视频教程课程目录:【】插件课程配套文件【】第一课、php语言介绍【】第三课、php中的数组和函数【】第二课、php语法的流程控制代码【】第五课、首页文章自动摘要插件开发【】第六课、简单的all in...

    U8快速客户化开发工具-基础介绍

    U8快速开发工具是针对客户化开发...快速开发工具是基于VB 6.0 开发工具,依据用友U8单据开发原理开发的适用于客户化快速、高效、简单、易学的特点而开发的一套工具。 目前快速开发工具分为V890、V10.1、V11.0 三个版本

    ecshop二次开发 47个经典插件开发案例 讲解很详细

    三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。...

    U8+快速开发工具.7z

    U8快速开发工具是针对客户化开发的特点,基于U8平台而开发的一套简化、快速、高效的U8...快速开发工具是基于VB 6.0 开发,依据用友U8单据开发原理开发的适用于客户化快速、高效、简单、易学的特点而开发的一套工具。

    ecshop二次开发 47个经典插件开发案例 讲解很详细 学习参考感谢提供者

    三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。...

    常用排针排座简易牛角串口PHD PHB XH接插件AD集成库原理图库PCB库封装库器件库2D3D库合集.zip

    常用排针排座简易牛角串口PHD PHB XH接插件AD集成库原理图库PCB库封装库器件库2D3D库合集(AD集成库IntLib格式文件), 拆分后文件为PcbLib+SchLib格式,Altium Designer的原理图库+ 2D3D PCB封装库,3D视图库,AD库...

    浅析Jenkins插件开发

    Jenkins,简单的说就是一个开源的持续集成服务器,是Hudson的继续。Jenkins提供了易于使用的持续集成系统,使开发者更专注于业务逻辑的实现。Jenkins能实时监控集成过程中的问题,提供详细的日志信息,还能以图表的...

    2.54间距 IDC6P-40P简易牛角座原理图PCB封装库3D库(AD集成库).zip

    2.54间距 IDC6P-40P简易牛角座原理图PCB封装库3D库(AD集成库),拆分后文件为PcbLib+SchLib格式,Altium Designer原理图库+PCB封装库3D视图库,AD库均经测试,可以直接应用到你的项目开发提供项目进度。

    白话插件框架原理

    本文将用尽可能简单的文字来描述插件框架原理。很多人以为插件化很复杂,所以就一直将这类框架阻挡在门外。实际上,在我们的实践过程中,从框架的使用角度来看,它非常简单,我们团队里面非正规院校毕业的女生也可以...

    C++轻量级通用插件框架源码

    编译环境为Visual C++ 6.0/2003/2005/2008/2010,其他C++开发平台下待测试(从实现原理上看应该没问题)。 运行环境为Windows 2000及以后的操作系统,Windows 98需要安装UNICODE支持包。 X3插件框架目前在局部范围...

    jquery 酒店入住离店日历插件(by Mk)

    该插件适用于酒店等类型的网站开发入住,离店功能;可获取入住日期,离店日期,居住天数等,css,js均可二次开发。欢迎咨询建议~ (原理,功能很简单,但可以拿来即用)

    Android插件框架Android-Plugin-Framework.zip

    还有一种简易的安装方式,是使用编译命令为 “ant clean debug install” 直接将插件apk安装到系统中,PluginMain工程会监听系统的应用安装广播,监听到插件apk安装广播后, 再自动调用PluginLoader.installPlugin...

    《数据库原理及应用技术》课程指导平台的开发(源代码+论文).rar

    毕业设计 ,毕设 ,毕设论文,毕业设计计算机,《数据库原理及应用技术》课程指导平台的开发(源代码+论文)。《数据库原理及应用技术》课程指导平台的开发,主要为教师和学生提供教学信息和课程教案的上传和下载; ...

    深入PHP与jQuery开发 pdf格式

    从那以后,jQuery一步一步成长到 1.4.2(本书写作时),拥有极多的插件(大部分来自开发社区)。插件是jQuery核心库之外的扩展组件。在第10章你将深入了解并亲手创建jQuery插件。 1.2 创建测试环境 学会一门新语言...

    Eclipse GEF 框架原理分析

    通过简单易懂的方式,介绍了Eclipse GEF 框架原理。对GEF开发有极大的好处/

    深入理解Nginx:模块开发与架构解析.陶辉(带详细书签)

    不用担心,本书将提供一条捷径,使你不用通过阅读一行行的Nginx源代码来找到模块开发方法,而是简单地按照章节查阅本书,就可以快速找到简单、高效地开发Nginx模块的方法,从而把精力放在业务的实现上。同时书中还...

    微信gulp-wx-compile 自动编译插件附示例.rar

     后来偶然又读了一下源码, 发现另外一个简易的注入点, 原理很简单, 内部竟然引入了express的包, 你懂的, 那就充分利用, 改进了这个插件。  反馈:由于微信小程序没有稳定,而且由于这只是一个辅助工具,并没有花太...

Global site tag (gtag.js) - Google Analytics