serviceloader相关内容

使用 ServiceLoader 动态加载插件 jar

我正在尝试为我的应用程序创建一个插件系统,我想从一些简单的事情开始.每个插件都应该打包在一个 .jar 文件中并实现 SimplePlugin 接口: package plugintest;公共接口 SimplePlugin {公共字符串 getName();} 现在我已经创建了一个 SimplePlugin 的实现,打包在一个 .jar 中并将它放在主应用程序的 plugin/子目录中: ..
发布时间:2022-01-01 16:49:38 Java开发

ServiceLoader 未加载新服务

我的 ServiceLoader 不想加载我的新服务.我想我已经正确设置了所有内容. 核心.主 public class Main {公共静态无效主(字符串 [] args){System.out.println("之前");迭代器services = ServiceLoader.load(IService.class).iterator();而 (services.hasNext()) ..
发布时间:2021-06-03 19:13:15 Java开发

ServiceLoader查找接口的实现

我尝试使用Java ServiceLoader 查找实现特定接口的所有类,如下所示: loader = ServiceLoader.load(Operation.class);尝试 {对于(操作o:加载程序){operation.add(o);}} catch(ServiceConfigurationError e){LOGGER.log(Level.SEVERE,“未捕获的异常",e);} ..
发布时间:2021-05-18 19:53:39 Java开发

具有UrlClassLoader的ServiceLoader找不到服务

我正在尝试使用带有UrlClassLoader的java ServiceLoader从某个jar文件中加载插件,但似乎无法找到它来找到我的插件类.构建两个模块都可以,但是每当我运行下面的代码时,即使文件路径正确并且看不到混乱的地方,我都会得到 java.util.NoSuchElementException 我必须在IntelliJ项目, Test (加载插件并提供ServiceProvid ..
发布时间:2021-05-16 19:27:12 Java开发

Java 9 ServiceLoader运行时模块的加载和替换

我刚刚阅读了有关Java 9模块系统的信息,我想问一下 ServiceLoader .应用程序启动后,有什么方法可以添加服务实现?如何删除一些服务实现? 用例::我将有一些用于计算内容的应用程序.计算算法将在某些服务(Java 9模块)中定义.在不停止应用程序的情况下,可以采取任何步骤来替换此算法吗?我什么时候才能更换罐子,仅仅是计算会失败,并且我需要捕捉错误并在模块加载完成后重新启动? ..
发布时间:2021-02-10 19:02:46 Java开发

枚举感知的ServiceLoader实现?

我希望能够将枚举类型表示为接口实现,然后通过 ServiceLoader API将所有枚举加载为接口的单独实例/实现。该用例的一个示例是允许我的API的下游用户指定自定义值,但为枚举提供标准/通用实现。我的界面只需要一个字符串 name(),因此任何枚举都已经实现了它。 例如, CopyOption 接口,带有提供的 StandardCopyOption 枚举。假设我想通过 ServiceL ..
发布时间:2020-10-30 03:45:11 Java开发

将ServiceLoader配置文件放在Web应用程序中的位置

我正在用Eclipse编写一个Web应用程序。 我正在尝试使用ServiceLoader类加载某些插件。 ServiceLoader的文档说我需要在META-INF / services中放置一个文件。 我已经将文件放置在WebContent / META-INF中/ service文件夹,但是当我通过Eclipse运行JUnit测试时,找不到任何插件。 这是文件的正确位置 ..
发布时间:2020-10-27 05:54:56 Java开发

根据单例设计模式使用服务加载器创建可扩展应用程序

我正在使用 IntelliJ IDEA 上的项目,并且想在Java应用程序中为可扩展应用程序添加支持。 方法是,在这个jar文件中创建一个jar文件,应该在该目录中有一个META-INF / services目录,我需要添加一个文件名,该文件名应与全名相同。提供服务的接口的标准名称,并且在该文件中,它应该具有该接口的实现的标准名称。 这是加密和解密在我的项目中服务。 这两个是我程 ..
发布时间:2020-10-02 04:33:06 Java开发

使用ClassLoader指向不同路径的ServiceLoader

几天以来一直在尝试此操作,但无法正常工作! 我正在尝试构建一个可插入的Java应用程序,可以在其中从命令行运行它,并在单独的文件夹中提供插件(罐子).看来ServiceLoader可以满足我的要求,但是我认为我需要一个特殊的情况,即jar不是类路径的一部分,而它们存储在不同的位置,因此,我需要使用ClassLoder指向其网址到该文件系统路径. 我要提供给主应用程序的一个插件是带有一些 ..
发布时间:2020-07-13 01:59:08 Java开发

提供者不是Docker容器内的子类型

情况 我正在开发一个使用Java的 URLClassLoader 和 ServiceLoader 加载jar文件的应用程序.在这些jar文件中是实现我的接口的提供程序.文件夹结构如在 oracle的帖子中所述. 该接口与在插件中实现该接口的类(com.x.projectname.plugin.IInterface.java)位于同一目录中.在插件中,接口和实现该接口的类都在 com.x ..
发布时间:2020-07-13 01:59:03 Java开发

在PHP中寻找一种优雅的方式来加载依赖项/服务/配置?

我正在构建一个MVC PHP框架,我想知道哪种最佳方法可以在我的类(无论是其他类还是纯配置)中加载所需的内容. 直到今天,我一直使用单例,注册表和最近的依赖项注入容器. 尽管许多人声称DI是必经之路,但在我看来,这只是将组件之间的耦合问题转移到另一个地方. 子集引入全局状态,注册表引入紧密耦合,DI引入...很好,非常复杂.我仍然很困惑,找不到找到彼此联系的正确方法. 与此同时, ..
发布时间:2020-05-20 00:52:28 PHP

ServiceLoader.next导致NoClassDefFoundError

我问是因为我完全不确定自己​​做对了.我正在将Eclipse用于Web项目.我们将其称为com.web.project包中的WebProject(duh). 我希望WebProject在运行时加载JAR插件,所以我认为我可以利用java.util.ServiceLoader的优势.因此,我在WebProject项目中创建了一个接口com.web.project.WebProjectPlugi ..
发布时间:2020-05-18 01:28:13 Java开发

在Java中,如何模拟使用ServiceLoader加载的服务?

我有一个遗留Java应用程序,该应用程序具有类似这样的代码 ServiceLoader.load(SomeInterface.class) ,我想提供SomeInterface的模拟实现以供此代码使用.我使用了模拟嘲笑框架. 不幸的是,我无法更改旧版代码,也不想静态添加任何内容(例如,向META-INF添加内容). 是否有一种简单的方法可以在测试中执行此操作,即在测试运行时? ..
发布时间:2020-05-10 01:53:33 Java开发

使用不同的类加载器加载类,以便在不需要时从JVM卸载它们

在我的应用程序中,我正在使用ServiceLoader加载具有不同ClassLoader的模块(.jar文件中的类),以便在不需要时从应用程序上下文和JVM本身中完全卸载它们.我知道“从JVM卸载类"可能不是一个常见的话题,有一些条件可以实现,所以我正在做出必要的努力.为了确保所有功能都按预期运行,我正在使用-XX:+ TraceClassLoading和-XX:+ TraceClassUnloa ..
发布时间:2020-04-25 07:42:33 Java开发

如何使java ServiceLoader在NetBeans 6.9模块应用程序中工作

我在NetBeans模块应用程序中使用java ServiceLoader时遇到了麻烦。这是我正在尝试做的(它在Eclipse中的普通java应用程序中工作): 我有一个interface.jar,它声明了接口。我有implements.jar,它有几个这个接口的实现,都在spi / META-INF / services / my.package.name.MyInteface文件中指定( ..
发布时间:2019-01-07 16:31:21 Java开发

何时使用ServiceLoader而不是像OSGi这样的东西

作为对依赖性过敏的人,我什么时候会使用像OSGi这样的内容而不是内置的java 6 http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html (我想让插件罐子成为掉在)。 (仅供参考,这是在scala应用程序中,对任何建议开放,ServiceLoader非常接近我想要的)。 解决方案 如果 ServiceLo ..
发布时间:2018-12-25 20:58:31 Java开发