我想在 Java 应用程序运行时发现接口的所有实现,并从用户可以添加到文件夹的 JAR 文件中动态加载这些类。它基本上是一个插件系统。
我为此找到了一些解决方案:
- 使用 SPI——这不是很灵活:我想要一些可能与注释一起使用的东西,或者只是寻找一个扩展的接口,而不必添加外部文本文件。
- 使用Commons Discovery——看起来像死路一条,因为上一个版本是 2005 年的 0.4
- 使用 Java 简单插件框架。5分钟,它的工作原理。没有 XML。——这看起来很不成熟。
有没有其他广泛使用的解决方案?
更新:不需要代码分离,而且 OSGi 似乎对我现在的简单需求来说太复杂了。我还在这个问题的标题中添加了“简单”以澄清我的意图。