Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9에서 서비스 공급자 인터페이스(SPI) 만드는 방법

Java 9 서비스 공급자 인터페이스 개요

서비스(Service) 인터페이스의 구현체를 제공하는 모듈은 모듈 기술자(module descriptor) 파일에 "provides" 구문을 반드시 포함해야 합니다. 만약 모듈 기술자 파일에 이 구문이 없다면, 서비스 로더(ServiceLoader)가 해당 모듈을 로드할 수 없습니다.

Java 9의 모듈 시스템에서는 이러한 방식으로 서비스 구현체와 소비자를 명확하게 분리할 수 있어, 애플리케이션의 결합도를 낮추고 유연성을 높일 수 있습니다.

서비스 공급자 인터페이스 생성 절차

다음 단계를 따라 서비스 공급자 인터페이스(Service Provider Interface)를 만들 수 있습니다.

  • 새로운 모듈 com.tutorialspoint.serviceproviderinterface를 생성합니다.
  • src/main/java 디렉터리 안에 "module-info.java" 파일을 생성합니다.
  • 소스 디렉터리 내부에 패키지 com.tutorialspoint.serviceproviderinterface.spi를 생성합니다.
  • 마지막으로, 구현해야 할 메서드 printServiceName()을 포함하는 인터페이스 ServiceProviderInterface를 정의합니다.

서비스 공급자 인터페이스 코드 예제

아래와 같이 서비스 공급자 인터페이스를 정의할 수 있습니다.

package com.tutorialspoint.serviceproviderinterface.spi;

public interface ServiceProviderInterface {
    void printServiceName();
}

위 인터페이스를 구현하는 모듈은 자신의 module-info.java 파일에 provides ServiceProviderInterface with 구현클래스명; 형태로 선언함으로써, ServiceLoader가 해당 구현체를 찾아 사용할 수 있게 됩니다.