Skip to content

JPlugin Core 入门教程

sunlet edited this page May 29, 2022 · 25 revisions

学习前提

本教程假定你对Jplugin的开发环境搭建和运行已经有基本掌握,如果没掌握,请参照参照 环境搭建与快速体验-创建HelloWord工程

JPlugin相关的核心概念包括三个:插件、扩展点、扩展。这些核心概念导致JPlugin和Spring以及其他传统开发方式的不同,支撑JPlugin特殊的架构优势。这里简单说一下插件的概念,另外两个概念在其他文档说明。

关于插件

  • 插件是组成JPlugin应用系统的单位,我们基于Jplugin开发应用就是要开发一些插件。其实,JPlugin-core、JPLugin-das、JPlugin-mvc本身也是一些列插件(Plugin)。
  • 每一个插件由插件类和插件资源组成。插件类一般命名为Plugin.java,插件资源为Plugin.java所在的包以及子包所包含的所有代码。 插件资源往往提供一系列的扩展点和扩展,这些扩展点和扩展可以用编码的方式在Plugin.java当中说明,不过目前更常用的是用注解直接标注。
  • 系统启动时,Plugin.JAVA启动过程中会扫描插件资源,加载扩展和扩展点。系统启动过程会打印各个插件的启动日志。另外,我们也可以通过配置禁用一些插件,插件被禁用后,虽然系统classpath当中仍然有对应的资源类,其中的插件资源就不会被加载了。

核心概念

注解式开发

虽然Jplugin支持用纯编码方式开发,新版本推荐使用注解来使用JPlugin。注解具有低侵入性、便捷等优点。 JPlugin-core支持的注解包括基础注解、插件式开发注解、拦截器注解、高级注解。

  • 基础注解是开发中常用的注解,包括插件注册、服务开发、配置、日志等,掌握基础注解,就能够按照传统方式完成日常开发需求。

  • 插件式开发注解,这些注解体现JPlugin的核心能力,让开发者开发出易扩展、低耦合的系统。

  • 拦截器注解,支持快捷开发针对JPlugin Extension的AOP拦截开发。

  • 特殊注解。用以解决一些特殊需求。 本教程介绍基础注解和特殊注解, 插件式开发注解、拦截器注解 在JPlugin-core 插件式设计与开发 介绍。

  • 基础注解

    • @PluginAnnotation
    • @BindService
    • @RefService
    • @RefConfig
    • @RefLogger
  • 特殊注解

    • @SetExtensionId
  • 插件式开发注解

    • @BindExtension
    • @BindExtensionPoint
  • 拦截器注解

    • @BindExtensionInterceptor
    • @SetExtensionPriority

插件标识注解

@PluginAnnotation

单例服务的定义和使用

配置文件读取

日志记录

Clone this wiki locally