为了实现模块化方法(simillar to 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列表注册到应用程序上下文,而不会引起任何冲突
答案 0 :(得分:1)
可能想看看这个, 为扩展点提供特定接口可能更好,然后允许插件实现它们。在本文中,我将描述使用Annotations和Spring实现此目的的方法
https://devnotesblog.wordpress.com/2011/03/20/adding-plug-ins-to-your-application-with-spring/