`

插件的简单开发原理

阅读更多
以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方法)。
分享到:
评论

相关推荐

    Android支付宝蚂蚁森林能量自动收取插件开发原理解析

    ### Android支付宝蚂蚁森林能量自动收取插件开发原理解析 #### 一、引言与背景 随着移动互联网的发展,各种应用程序不仅提供了便利的服务,还融入了许多趣味性元素,支付宝的“蚂蚁森林”便是其中的典型代表。用户...

    web播放器插件的原理与简单实现

    【标题】:“Web播放器插件的原理与简单实现” 在Web开发中,播放器插件扮演着重要的角色,它们允许用户在浏览器中直接播放多媒体内容。本话题将深入探讨Web播放器插件的工作原理,并提供一个简单的实现方法,特别...

    android插件化开发

    Android插件化开发是一种技术,它允许开发者在不重新编译和安装主应用程序的情况下,添加、更新或移除应用的功能模块。...理解并掌握插件化的原理和技术,对于大型Android项目的开发和维护具有重要的价值。

    OllyDbg插件开发入门

    通过深入理解插件的工作原理、掌握常用的API函数以及实践具体的开发实例,开发者可以有效地利用OllyDbg的强大功能来满足复杂的调试需求。无论是初学者还是经验丰富的开发者,都能够从中获得宝贵的技能提升。

    Chrome浏览器的vue开发插件

    Vue.js是一款非常流行的前端...通常,开发者可能需要这些资源来定制插件、进行二次开发或研究其工作原理。不过,对于一般开发者来说,直接从Chrome Web Store安装稳定版本的Vue DevTools已经足够满足日常开发需求。

    Chrome插件开发完整教程

    4. 相比Firefox插件,Chrome插件开发更为简单,且可以跨平台运行,不仅在Chrome浏览器上,还能在基于WebKit内核的其他国产浏览器上运行。 开发Chrome插件并不需要特定的项目结构或IDE,只需保证根目录下有一个`...

    VC开发IE插件入门源代码

    通过这个简单的例子,开发者不仅可以学习到如何使用VC和ATL创建COM组件,还可以深入理解IE插件的工作原理,包括与IE浏览器的交互机制、菜单管理以及注册表操作等。这对于进一步开发复杂的IE插件或扩展其他类型的...

    openfire插件开发(1)

    导入OpenFire源码到IDE,这将帮助你更好地理解OpenFire的工作原理并进行插件开发。确保你已经安装了Java Development Kit (JDK) 并配置好环境变量,因为OpenFire是用Java编写的。 在IDE中,创建一个新的Java项目,...

    IE插件开发,c#,IE

    ### IE插件开发详解——基于C#与ATL ...虽然示例使用了C#和ATL,但这些基本原理和技术可以应用于其他类型的浏览器插件开发。希望本文能够帮助开发者们更好地理解IE插件的开发流程,并激发更多的创新想法。

    eclipse插件开发实战

    ### Eclipse 插件开发实战详解 #### 一、Eclipse 内核结构与扩展点机制 **1. Eclipse 内核结构概述** Eclipse 的核心是插件加载器,整个平台由众多插件组成,其架构特点在于轻量级的核心与高度可扩展的设计。在...

    eclipse插件开发-铺设一条插件开发普及之路(1-5章).pdf

    ### Eclipse插件开发知识点梳理 #### 第一章 Eclipse插件概述 ##### 一、Eclipse概述 - **起源与发展**:Eclipse最初由IBM于2000年启动,旨在解决其现有产品如VisualAge for Java和WebSphere Studio难以集成的问题...

    简单分页插件

    在IT行业中,分页是网页开发中不可或缺的一部分,...通过学习和理解这个插件的工作原理,开发者不仅可以提升项目效率,还能加深对JavaScript、CSS以及HTML三者协同工作的理解,这对提升其前端开发技能是非常有帮助的。

    插件模式开发-DEM

    在"插件模式开发-DEMO"这个示例中,你可以找到一个简单的插件模式实现,通过分析和学习这个DEMO,新手可以快速理解插件模式的基本原理和实现方式。实际项目中,你可能需要根据具体需求对这些基础概念和步骤进行扩展...

    GStreamer_插件开发指南

    它以其模块化设计著称,这意味着开发者可以通过简单的插件开发方式来扩展框架的功能。 #### 二、GStreamer框架概述 1. **模块化特性** - **优点**:GStreamer能够无缝地集成新的插件模块。 - **挑战**:尽管具有...

    goole浏览器扩展应用程序插件开发

    谷歌浏览器扩展应用程序...综上所述,谷歌浏览器扩展应用程序插件开发涉及多种技术,并且需要对浏览器工作原理有深入理解。开发者可以通过学习这些技术,创建出功能强大、个性化的浏览器工具,以满足用户的特定需求。

    android插件化demo

    通过这个Demo,开发者可以学习到如何封装插件化开发工具包,使其简单易用。这通常包括提供便利的API供开发者创建插件,以及一套完整的插件加载和管理机制。 在实际应用中,插件化技术可以用于大型应用的模块化开发...

    jira插件开发技术文档

    - 通过遵循本文档提供的指南,可以有效地提高开发效率,减少开发过程中遇到的问题,使得插件开发变得更加简单和顺畅。 #### 7. 附录 - **定义、首字母缩写词和缩略语**:提供了文档中使用的专业术语和缩写的解释。 ...

    VC下插件开发demo源码

    一、插件系统设计原理 插件系统的核心思想是解耦,即让主程序和插件之间保持最小的依赖关系。这样,主程序可以独立更新,而插点也可以单独升级,降低了维护成本。在Windows平台上,通常通过动态链接库(DLL)来实现...

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

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

Global site tag (gtag.js) - Google Analytics