# plugin **Repository Path**: dufafei/plugin ## Basic Information - **Project Name**: plugin - **Description**: 插件扩展 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-05-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Plugin 一个轻量级的 Java 插件框架,支持注解驱动、动态加载和依赖隔离。 ## 功能特性 - **注解驱动**:通过注解定义插件元数据(ID、版本等) - **动态加载**:基于 URLClassLoader 实现插件的动态加载 - **依赖隔离**:每个插件拥有独立的 ClassLoader,避免 JAR 依赖冲突 - **代理支持**:提供 JDK 动态代理能力,支持拦截器模式 ## 快速开始 ### 定义插件接口 ```java public interface IPluginInterface { void run(); } ``` ### 定义插件注解 ```java @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Job { String id(); // 插件唯一标识 String version(); // 插件版本 } ``` ### 实现插件 ```java @Job(id = "plugin1", version = "1.0") public class Plugin1 implements IPluginInterface { @Override public void run() { System.out.println("Plugin1 running..."); } } ``` ## 核心类说明 | 类名 | 说明 | |------|------| | `Plugin` | 插件实体类,存储插件元信息 | | `PluginDefinition` | 插件定义器,管理特定类型的插件 | | `PluginRegistry` | 插件注册中心,全局管理所有插件 | | `PluginScanner` | 插件扫描器,发现并注册插件 | | `PluginURLClassLoader` | 自定义类加载器,支持父类优先加载策略 | | `ThreadClassLoaderSwapper` | 线程上下文类加载器切换工具 | ## 插件加载示例 ```java // 创建插件定义 PluginDefinition