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 项目的基本使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助。