> Java > java지도 시간 > Java 9에서는 언제 모듈에서 ServiceLoader 클래스를 사용합니까?

Java 9에서는 언제 모듈에서 ServiceLoader 클래스를 사용합니까?

PHPz
풀어 주다: 2023-08-25 19:05:02
앞으로
1534명이 탐색했습니다.

在Java 9中,何时使用ServiceLoader类在模块中呢?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿