在 Spring 中将插件添加到应用程序上下文

Adding Plugins to Application Context in Spring

为了实现模块化方法(类似于 oSGI)我正在使用 spring 插件框架(https://github.com/spring-projects/spring-plugin),我提供了一个特定的接口作为我的插件实现将实现的扩展点

有两件事需要做 首先:扫描类路径中的所有 类 并获取实现该接口的实现(扩展点)

第二步:将那些实现 bean 添加到应用程序上下文

第一部分可以实现,因为 spring 插件提供了 PluginRegistry,它查找给定插件类型的所有实现

registry.getPluginFor(ProductType.SOFTWARE);
// Returns the first plugin supporting SOFTWARE, or DefaultPlugin if none found
registry.getPluginFor(ProductType.SOFTWARE, new DefaultPlugin());
// Returns all plugins supporting HARDWARE, throwing the given exception if none found
registry.getPluginsFor(ProductType.HARDWARE, new MyException("Damn!");

第二部分:我应该如何在不引起任何冲突的情况下将这个 bean 列表注册到应用程序上下文

可能想看看这个, 为您的扩展点提供一个特定的接口,然后允许插件实现它们可能是一个更好的主意。在这篇文章中,我将描述一种使用注释和 Spring

实现此目的的方法

https://devnotesblog.wordpress.com/2011/03/20/adding-plug-ins-to-your-application-with-spring/