问题标签 [pf4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
294 浏览

spring-boot - PF4J Spring - 除了在配置类中声明的 bean 之外,无法加载插件中的任何组件

我们正在为我们的一个项目使用插件架构,我们决定使用 Spring pf4j。当我们通过扩展加载插件时 - 应用程序上下文无法在插件项目中找到使用 @component 创建的 bean - 但是当我们使用 register 方法配置插件时,@configuration 类中声明的 bean 被正确注入 - 无论如何扫描和加载插件中的弹簧组件?

0 投票
1 回答
314 浏览

spring - 无法使用 PF4J、PF4J-Spring 和 Wicket 从应用程序上下文接收具体 bean

我正在使用 Wicket 和 PF4J 制作一个 Spring Boot 应用程序。我想在我的插件中使用 spring 服务。这些服务不使用插件类加载器之外的服务。在我的插件中,我可以有检票口面板。面板类可以使用 Spring 服务。

这里是插件的类:

它的界面:

SpringConfiguration 类:

配置面板:

和服务:

为了显示配置,我在我的应用程序中使用了这个页面:

当我询问 PluginTestPage 时,出现此错误:

问题的根源是什么?这是我的设置错误还是 pf4j-spring 的错误?

问候, 史蒂夫

0 投票
0 回答
57 浏览

spring-boot - 如何使 pf4j 插件 bean 可注入 Spring 应用程序

我们正在尝试利用 pf4j 和 pf4j-spring 来提供基于 Spring 的灵活应用程序。

理想情况下,我们希望在插件中定义 Spring bean(@Service@Repository其他)并将它们注入到主应用程序中。

从我所见,它似乎由于时间问题而失败。或者换句话说,Springs 期望 bean 在PluginManager实例化之前可用。

GitHub 上有一个示例存储库说明了该问题。

问题是:我可以改变一些东西,让 Spring 实例化第PluginManager一个吗?是否有另一种方法可以使这项工作?

注意:是的,我们知道sbp。不幸的是,它似乎已经死了,我们也没有让它正常工作。

0 投票
0 回答
14 浏览

java - best pattern to share services with a pf4j plugin from the host? (not spring)

Im creating a pluggable CLI tool that allows users to add plugins in the form of picocli subcommands to a host picocli app.

I want to be able to supply the plugins with shared functionality such as http communication with a server defined in a user profile on the main app. As I have it now I just have an api for the extension point that contains the service, which is the initialised on plugin load, but this only works for a single service, and requires all plugins to have the service.

#xA;

The plugins look like this:

#xA;

then in the root app I can set it by simply calling setHttpService on all plugins. This is a bad pattern, I know it is, what is a better way of achieving this for several services?