# secret-plugin **Repository Path**: SecretOpen/secret-plugin ## Basic Information - **Project Name**: secret-plugin - **Description**: secret-plugin是一个简单易用、基本功能完善的java插件框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 1 - **Created**: 2021-01-31 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # secret-plugin ![JDK](https://img.shields.io/badge/JDK-11-green.svg) ![Maven](https://img.shields.io/badge/Maven-3.6.1-green.svg) [![license](https://img.shields.io/badge/license-Apache%20v2-yellow.svg)](https://gitee.com/secret_C/secretBlogBoot/blob/master/LICENSE) ### 介绍 secret-plugin是一个简单易用的java插件框架 ### 功能 支持内置插件以及加载外部jar包插件 ### 使用方法 maven: ~~~ com.gitee.secretopen secret-plugin 1.0.1 ~~~ ***详见 [Wiki文档](https://gitee.com/SecretOpen/secret-plugin/wikis/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B?sort_id=3496232)*** 内置插件接口:SecretPluginInterface 初始化设置设置类:SecretPluginConfig 插件接口实现类注解:@SecretPlugin 插件实现者: 实现 SecretPluginInterface 接口即可。 ~~~ java @SecretPlugin public class OutsidePluginTest implements SecretPluginInterface { Logger logger = LogManager.getLogger(OutsidePluginTest.class.getName());; /** * 启用插件 */ @Override public void initialize() { logger.info("插件启动成功 - {}"+getPluginName()); } /** * 停止插件 */ @Override public void stop() { logger.info("插件关闭成功 - {}"+getPluginName()); } @Override public void openSetup() { logger.info("打开此插件设置 - "); } /** * 插件是否有自定义设置功能 * @return true:是 */ @Override public boolean hasSetup() { return true; } /** * 获取插件名称 */ @Override public String getPluginName() { return "outside plugin test"; } } ~~~ secret-plugin.properties 文件(放置在resources目录下): ~~~ //外部插件的插件接口实现类所在包名/类名完整路径 secret.plugin.outside-package=org.example secret.plugin.outside-package=org.example.OutsidePluginTest ~~~ 插件接口提供者: ~~~ java //true 为 输出插件json文件 SecretPluginConfig config = SecretPluginConfig.getInstance(true); //创建插件工厂,则插件加载并执行,pluginPackage为内置插件所在包名,pluginPath为外部插件所在目录 SecretPluginFactory factory=new SecretPluginFactory(pluginPackage,new File(pluginPath)); //factory2 SecretPluginFactory factory2=new SecretPluginFactory(pluginPackage); //factory3 SecretPluginFactory factory3=new SecretPluginFactory(new File(pluginPath)); ~~~