Java에는 java.util 패키지의 ServiceLoader 클래스가 있습니다. 이 클래스는 런타임 시 클래스 경로에서 공급자를 검색하여 서비스를 찾는 데 도움이 됩니다. 모듈에 정의된 서비스 제공자의 경우 샘플 애플리케이션을 살펴보고 서비스가 포함된 모듈과 작동 방식을 선언할 수 있습니다.
예를 들어 "test.app우리는 我们需要使用 Logger 模块,可以借助 LoggerFinder 서비스의 도움으로 System.getLogger() 팩토리 메소드에서 검색할 수 있는 Logger 모듈을 사용해야 합니다.
<strong>module com.tutorialspoint.test.app { requires java.logging; exports com.tutorialspoint.platformlogging.app; uses java.lang.System.LoggerFinder; }</strong>
여기에 test.app이 있습니다. MainApp 클래스:
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(); } }
이것은 "test.logging" 모듈 내부의 LoggerFinder 구현입니다:
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 } }
"test.logging " 모듈 선언을 통해 " Provide – "Provide the Implement of the LoggerFinder Service>"
<strong>module com.tutorialspoint.test.logging { provides java.lang.System.LoggerFinder with com.tutorialspoint.platformlogging.logger.MyLoggerFinder; }</strong>을 전달할 수 있습니다.
위 내용은 Java 9에서는 언제 모듈에서 ServiceLoader 클래스를 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!