java configuration类_java11教程–类Configuration用法

  • Post author:
  • Post category:java


配置封装了可读性图 ,它是分辨率的输出。 可读性图是有向图,其顶点类型为ResolvedModule ,边表示模块之间的可读性。 Configuration定义了modules()方法以获取图中已解析模块的集合。 ResolvedModule定义了reads()方法以获取已解析模块读取的模块集。 读取的模块可以采用相同的配置,也可以采用parent配置。

配置定义resolve方法来解决根模块的集合,而resolveAndBind方法做服务约束力的决议。 这两种方法都有实例和静态变体。 实例方法创建一个配置,接收者作为父配置。 静态方法适用于可能有多个父配置的更高级的情况。

Java虚拟机中的每个layer模块都是从配置创建的。 通过调用ModuleLayer.boot().configuration()获取boot层的配置。 创建新配置时,引导层的配置通常是父配置。

以下示例使用resolve方法解析名为myapp的模块,并将引导层的配置作为父配置。 它打印每个已解析模块的名称以及每个模块读取的模块的名称。

ModuleFinder finder = ModuleFinder.of(dir1, dir2, dir3); Configuration parent = ModuleLayer.boot().configuration(); Configuration cf = parent.resolve(finder, ModuleFinder.of(), Set.of(“myapp”)); cf.modules().forEach(m -> { System.out.format(“%s -> %s%n”, m.name(), m.reads().stream() .map(ResolvedModule::name) .collect(Collectors.joining(“, “))); });



版权声明:本文为weixin_31783001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。