PF4J-Spring 项目使用教程

PF4J-Spring 项目使用教程

pf4j-springPlugin Framework for Spring (PF4J - Spring Framework integration)项目地址:https://gitcode.com/gh_mirrors/pf/pf4j-spring

1. 项目的目录结构及介绍

PF4J-Spring 项目的目录结构如下:

pf4j-spring
├── demo
│   ├── manager
│   ├── plugins
│   │   ├── greeting-button-plugin
│   │   ├── system-button-plugin
│   │   └── whether-button-plugin
│   └── sdk
├── pf4j-manager-spring-boot-starter
└── pf4j-spring-core

目录介绍

  • demo: 一个使用 pf4j-manager-spring-boot-starter 的完整例子。
    • manager: 主应用,使用 Spring Boot。
    • plugins: 包含三个插件,分别是 greeting-button-plugin、system-button-plugin 和 whether-button-plugin。
    • sdk: 插件扩展点定义。
  • pf4j-manager-spring-boot-starter: 提供了 Spring Boot 配置类和配置项。
  • pf4j-spring-core: PF4J 有 Spring 版本 pf4j-spring,但没有和 Spring Boot 集成,并且部分实现想要修改,因此新建了 pf4j-spring-core 模块,和 pf4j-spring 几乎一致,修改了部分实现。

2. 项目的启动文件介绍

项目的启动文件位于 demo/manager/src/main/java 目录下,主要包含以下文件:

  • Boot.java: 启动类,负责启动 PF4J-Spring 应用。
package org.pf4j.demo;

import org.apache.commons.lang.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.pf4j.PluginManager;

/**
 * A boot class that start the demo
 *
 * @author Decebal Suiu
 */
public class Boot {
    public static void main(String[] args) {
        // 启动 PF4J-SPRING
        printLogo();
        // 加载自定义的配置类 jar 包加载控制器
        // 这一步会先全局扫描插件,没有找到插件的话,就会找可能的 extensions
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        PluginManager pluginManager = context.getBean(PluginManager.class);
        pluginManager.loadPlugins();
        pluginManager.startPlugins();
    }

    private static void printLogo() {
        System.out.println("PF4J-Spring Demo");
    }
}

3. 项目的配置文件介绍

项目的配置文件位于 demo/manager/src/main/resources 目录下,主要包含以下文件:

  • application.yml: Spring Boot 配置文件,包含应用的基本配置和 PF4J 插件路径配置。
server:
  port: 8080

pf4j:
  plugins-dir: /path/to/plugins

配置项介绍

  • server.port: 指定应用的端口号,默认为 8080。
  • pf4j.plugins-dir: 指定插件保存的位置,需要根据实际情况进行配置。

以上是 PF4J-Spring 项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助。

pf4j-springPlugin Framework for Spring (PF4J - Spring Framework integration)项目地址:https://gitcode.com/gh_mirrors/pf/pf4j-spring

springboot集成pf4j是一种实现插件化开发的方式。在这种集成中,使用了pf4j-spring框架和自定义的pf4j-spring-core模块来扩展pf4j的功能,并提供了pf4j-manager-spring-boot-starter作为spring-boot的配置类和配置项。这样可以在spring-boot应用中轻松地管理和加载插件。 具体来说,项目中的pf4j-spring模块是PF4Jspring版本,但没有与spring-boot集成。为了满足需求,新建了pf4j-spring-core模块,与pf4j-spring几乎一致,但修改了部分实现。而pf4j-manager-spring-boot-starter提供了spring-boot的配置类和配置项。 在项目的结构中,主应用是manager模块,它是一个spring-boot web应用。sdk模块定义了插件的扩展点。而plugins目录下有三个插件和四个扩展功能。 要运行Demo,可以使用命令"git clone https://github.com/clyoudu/pf4j-spring.git"克隆项目。 综上所述,springboot集成pf4j是一种在spring-boot应用中实现插件化开发的方法,通过使用pf4j-spring框架和自定义的pf4j-spring-core模块来扩展pf4j的功能,并提供了pf4j-manager-spring-boot-starter作为spring-boot的配置类和配置项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【借助pf4j实现基于spring-boot的插件化开发](https://blog.csdn.net/CL_YD/article/details/128836481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JAVA单例模式源码-pf4j-spring:Spring插件框架(PF4J-Spring框架集成)](https://download.csdn.net/download/weixin_38499336/19398119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵇殉嵘Eliza

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值