Java verfügt über eine ServiceLoader-Klasse aus dem java.util-Paket, die beim Auffinden von Diensten hilft, indem sie im Klassenpfad nach ihnen sucht und zur Laufzeit Anbieter bereitstellt. Für in Modulen definierte Dienstanbieter können wir uns die Beispielanwendung zum Deklarieren eines Moduls mit Diensten und deren Funktionsweise ansehen.
Zum Beispiel haben wir eine „test.appmüssen das Logger-Modul verwenden, das mit Hilfe des Dienstes 我们需要使用 Logger 模块,可以借助 LoggerFinder aus der Factory-Methode System.getLogger() abgerufen werden kann.
<strong>module com.tutorialspoint.test.app { requires java.logging; exports com.tutorialspoint.platformlogging.app; uses java.lang.System.LoggerFinder; }</strong>
Hier ist test.app. Klasse:
package com.tutorialspoint.platformlogging.app; public class MainApp { private static <strong>Logger </strong>LOGGER = <strong>System.getLogger()</strong>; public static void main(String args[]) { LOGGER.log(); } }
Bereitstellen –
„Bereitstellen der Implementierung desLoggerFinder
Service>“package com.tutorialspoint.platformlogging.logger; public class MyLoggerFinder extends LoggerFinder { <strong>@Override</strong> public Logger getLogger(String name, Module module) { // return a Logger depending on name/module } }
Das obige ist der detaillierte Inhalt vonWann sollte in Java 9 die ServiceLoader-Klasse in einem Modul verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!