- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 JPMS 层:
module A
的引导层由 ClassLoaders$AppClassLoader@4fca772d
加载module B
的子层提供 cervices 并由 Loader@6b58b9e9
加载Loader@6b58b9e9
的父类加载器是
ClassLoaders$AppClassLoader@4fca772d
.
module A
我有以下代码:
ServiceLoader<ModuleAInterface> sl = ServiceLoader.load(ModuleAInterface.class);
Module B
的服务仅当上下文类加载器为
Loader@6b58b9e9
时才被发现当上下文类加载器为
ClassLoaders$AppClassLoader@4fca772d
时未找到.
module B
的服务?在
module A
不知道
module B
的类加载器在这样的配置中。
最佳答案
查看 java.util.ServiceLoader
的代码在 jdk 14(见截图)中,当有多个 ModuleLayer
时,它看起来遵循与类加载相同的逻辑,如 this stackoverflow answer 中所述
这意味着 ServiceLoader
将首先查看自己的服务ModuleLayer
然后在其父 ModuleLayer
并以递归方式从 child 继续到 parent
is it possible to get services of module B in module A without knowing class loader of module B in such configuration.
关于java - ServiceLoader.load 如何与 JPMS 中的类加载器一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61139200/
我的 ServiceLoader 不想加载我的新服务。我认为我已正确设置所有内容。 核心.主要 public class Main { public static void main(String
是否可以在注释处理器的 init(ProcessingEnvironment) 方法中使用 ServiceLoader? interface Service {} class Annotation
这是一个已知问题吗?我找不到任何搜索结果。 当迭代已经在进行时迭代 ServiceLoader 时,第一次迭代将中止。例如,假设至少有两个 Foo 的实现,以下代码将失败并出现 AssertionEr
我想了解Java ServiceLoader的概念、工作机制和具体用例,但找到官方documentation过于抽象和困惑。 首先,文档概述了服务和服务提供商。服务是一组封装在 jar 存档(API
我最近发现关于服务加载器是否会在启动后定位添加到模块路径的提供程序的相互矛盾的文档。 ServiceLoader::reload : public void reload() Clear this
在问这个之前我真的做了很多研究,好像我错过了什么。我尝试实现一个 ServiceLoader,因此制作了一个示例类: 代码很简单: testInterface.java package com.tes
使用 ServiceLoader 的最佳实践是什么?在具有多个类加载器的环境中?该文档建议在初始化时创建并保存单个服务实例: private static ServiceLoader codecSet
我遇到了 the documentation of ServiceLoader并且不清楚它适用于哪些用例。 什么时候使用ServiceLoader? 最佳答案 当您希望您的程序具有“插件”功能时,您可
JPMS ServiceLoader 无法正常工作。 我正在尝试提供一个桌面程序作为可执行jar,带有默认服务,可以由个人用户重载。用户提供他们自己的服务类,并在命令行上提供他们的名字作为参数。 服务
我有一个使用 JPMS 功能的多模块 Maven 项目。消费者模块未加载提供者模块中存在的实现。 这是 Maven 项目结构: ServiceLoaderExample ├── consumer ├─
我正在尝试弄清楚Java的ServiceLoader。我设置了一个非常基本的测试实现: public class BaseThingy { public BaseThingy(){ Itera
我遇到问题,但不知道如何解决 假设我有两个服务提供商接口(interface) (SPI) public interface View{ display(); } public interfa
我希望能够将枚举类型指示为接口(interface)实现,然后通过 ServiceLoader API 将所有枚举加载为接口(interface)的单独实例/实现。此用例的一个示例是允许 API 的下
我想知道是否可以将 ServiceLoader 与 EJB 以及来自 Java EE 6 的注入(inject)结合起来。 假设我有一个接口(interface) ServiceI,它可以由两个 EJ
我正在尝试将一个基本的基于 SPI 的处理程序注册表放在一起,我从 HandlerRegistry 中查找它。当我使用 ServiceLoader.load(Handler.class) 初始化提供程
我刚读到有关 Java 9 模块系统的信息,我想问一下 ServiceLoader .当应用程序已经启动时,有什么方法可以添加服务实现吗?删除一些服务实现怎么样? 用例:我将有一些计算某些东西的应用程
class ServiceLoader implements Iterable { // ... } interface Foo { // ... } class FooReposit
我试图找出是否有 ServiceLoader 类的 Spring 类似物,它是标准 SDK API 的一部分。如果有这样的类怎么用? 请指教! 最佳答案 假设 SpringFactoriesLoade
jjs.exe 运行的脚本是否应该能够像任何 Java 程序一样使用 ServiceLoader 定位服务? 我已将案例简化为以下脚本: function dump (stream) { (n
我的工作区中有四个 Eclipse 插件项目(创建一个新的 Java 项目,右键单击,配置,转换为插件项目)。第一个(my.runtime)包含一个接口(interface)(MyFactoryInt
我是一名优秀的程序员,十分优秀!