代码之家  ›  专栏  ›  技术社区  ›  Ashwin Jayaprakash

JavaServiceLoader在开发期间是如何工作的(建罐前的单元测试?)

  •  3
  • Ashwin Jayaprakash  · 技术社区  · 15 年前

    Java的ServiceLoader需要这些条目出现在JAR文件中。在IDE中,有没有一种方法可以在运行时以编程方式添加这些服务条目以进行单元测试?尤其是罐子还没造好的时候。

    1 回复  |  直到 15 年前
        1
  •  7
  •   kschneid    15 年前

    不要太专注于JAR文件。它们是封装服务的首选方法,但不是必需的。关键是 ClassLoader.getResources(String) -在哪里 String arg实际上变成 ("META-INF/services/" + serviceClass.getName()) . 另一个需要记住的信息是 ServiceLoader.load(Class) context class loader (当然,你也可以利用 ServiceLoader.load(Class, ClassLoader) ServiceLoader 快乐。