50得票3回答
使用ServiceLoader动态加载插件JAR文件

我正在尝试为我的应用程序创建一个插件系统,希望从简单的开始。每个插件应该打包在一个 .jar 文件中,并实现 SimplePlugin 接口: package plugintest; public interface SimplePlugin { public String get...

38得票5回答
Java ServiceLoader与多个类加载器

在存在多个类加载器的环境中使用ServiceLoader的最佳实践是什么?文档建议在初始化时创建和保存单个服务实例:private static ServiceLoader<CodecSet> codecSetLoader = ServiceLoader.load(CodecSet...

25得票3回答
使用ServiceLoader查找接口实现

我尝试使用Java的ServiceLoader来查找所有实现特定接口的类,代码如下:loader = ServiceLoader.load(Operation.class); try { for (Operation o : loader) { operations.a...

19得票2回答
何时使用ServiceLoader而不是像OSGi这样的东西

作为一个对依赖性过敏的人,我什么时候会使用OSGi而不是内置的Java 6 http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html(我想让插件JAR文件可以随意添加)。 (顺便说一下,这是在Scala应用程序中,欢...

16得票2回答
无法推导模块描述符:提供程序{X类}不在模块中。

我在尝试编译我的新的模块化Java 11应用程序时遇到了这个错误信息:Error occurred during initialization of boot layer java.lang.module.FindException: Unable to derive module descr...

14得票5回答
如何在Java中覆盖服务提供者

这更像是一个一般性的问题,以例子为基础: 我正在使用xstream和woodstox,woodstox jar中自带javax.xml.stream.XMLOutputFactory服务提供程序,并注册com.ctc.wstx.stax.WstxOutputFactory。 我想提供自己的ja...

13得票5回答
在Android上使用ServiceLoader

我对Java和Android开发非常陌生,为了学习,我试图创建一个类似于Munin的应用程序以收集统计和信息。 我正在尝试能够在我的应用程序中加载“插件”。 这些插件已经存在于应用程序中,但我不想单独调用它们,而是希望能够遍历它们。 我尝试使用ServiceLoader,但无法将META-IN...

13得票1回答
Java ServiceLoader 解释

我试图理解Java的ServiceLoader概念、工作机制和具体用例,但发现官方文档太抽象和混乱了。 首先,文档概述了服务和服务提供者。服务是一组接口和抽象类,打包在一个jar归档文件(API库)中。服务提供者是一组实现或扩展API的类,打包在一个独立的jar文件(提供者库)中。 到此为...

13得票4回答
在Java中,我如何模拟使用ServiceLoader加载的服务?

我有一个传统的Java应用程序,其中有类似以下代码:ServiceLoader.load(SomeInterface.class) 我希望为这段代码提供一个SomeInterface的模拟实现,我使用mockito mocking框架。 不幸的是,我无法更改遗留代码,并且我不希望静态地添加任何...

11得票2回答
FactoryFinder性能/缓存不良

我有一个相当大的Java EE应用程序,其中有一个庞大的类路径,执行大量的XML处理。目前,我正在尝试通过采样分析器来加速我的一些函数,并找到慢速代码路径。 我注意到特别是当我们调用TransformerFactory.newInstance(...)时,我们的代码部分特别慢。我将其追踪到F...