PF4J 是一个 Java 的插件框架,为第三方提供应用扩展的渠道。使用 PF4J 你可以轻松将一个普通的 Java 应用转成一个模块化的应用。PF4J 本身非常轻量级,只有 50KB 左右,目前只依赖了slf4j。Gitblit项目使用的就是 PF4J 进行插件管理。基于该插件扩展
ro.fortsoft.pf4j
pf4j
${pf4j.version}
public static void main(String[] args) {
...
PluginManager pluginManager = new DefaultPluginManager();
pluginManager.loadPlugins();
pluginManager.startPlugins();
...
} Spring插件使用
@Configuration
public class Boot {
public static void main(String[] args) {
// retrieves the spring application context
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Boot.class);
// print greetings in System.out
Greetings greetings = applicationContext.getBean(Greetings.class);
greetings.printGreetings();
// stop plugins
PluginManager pluginManager = applicationContext.getBean(PluginManager.class);
pluginManager.stopPlugins();
}
@Bean
public PluginManager pluginManager() {
PluginManager pluginManager = new DefaultPluginManager();
pluginManager.loadPlugins();
// start (active/resolved) the plugins
pluginManager.startPlugins();
return pluginManager;
}
@Bean
public static ExtensionsInjector extensionsInjector() {
return new ExtensionsInjector();
}
@Bean
public Greetings greetings() {
return new Greetings();
}
}
相关链接