Java 的 ServiceLoader 需要这些条目出现在 JAR 文件中。有没有办法在运行时以编程方式在 IDE 中添加这些服务条目以进行单元测试?特别是当 JAR 尚未构建时。
问问题
2404 次
1 回答
7
不要太专注于 JAR 文件。它们是封装服务的首选方式,但不是必需的。关键是真的ClassLoader.getResources(String)
- String
arg 有效地变成("META-INF/services/" + serviceClass.getName())
. 要记住的另一点信息是ServiceLoader.load(Class)
使用上下文类加载器(当然,您也可以使用ServiceLoader.load(Class, ClassLoader)
)。所以......你真正需要做的是操纵类路径或配置上下文类加载器以使ServiceLoader
快乐。
于 2010-06-30T19:17:51.213 回答