ConfigurationSpi — Configuration의 서비스 공급자 인터페이스

ConfigurationSpi — Configuration의 서비스 공급자 인터페이스

ConfigurationSpiConfiguration 클래스의 서비스 공급자 인터페이스(SPI)를 정의하는 추상 클래스예요. Configuration 구현을 제공하려는 각 서비스 공급자는 이 클래스의 모든 추상 메서드를 구현해야 해요.

출처: Java API Reference

본문

public abstract class ConfigurationSpi extends Object

이 추상 클래스의 하위 클래스 구현은 Configuration.Parameters 객체를 입력 인자로 받는 공개 생성자를 제공해야 해요. 이 생성자는 Configuration.Parameters 입력을 이해하지 못하면 IllegalArgumentException도 던져야 해요.

생성자

  • ConfigurationSpi() — 하위 클래스에서 호출하기 위한 생성자예요.

메서드

  • protected abstract AppConfigurationEntry[] engineGetAppConfigurationEntry(String name) — 지정된 name에 대한 AppConfigurationEntry들을 검색해요. nameConfiguration을 인덱싱하는 데 사용되는 이름이고, 지정된 name에 대한 AppConfigurationEntry 배열을 반환하며 항목이 없으면 null을 반환해요.
  • protected void engineRefresh()Configuration을 새로고침·다시 로드해요. 이 메서드는 이 Configuration 객체가 구현 의존적인 방식으로 내용을 refresh/reload하게 해요. 예를 들어 이 Configuration이 파일에 항목을 저장한다면 refresh를 호출하면 파일을 다시 읽을 수 있어요. 기본 구현은 아무것도 하지 않아요. 구현이 refresh를 지원한다면 이 메서드를 오버라이드해야 해요. 호출자가 refresh할 권한이 없으면 SecurityException이 발생해요.

SPI란 무엇일까요?

Configuration은 사용자에게 보이는 공개 API이고, ConfigurationSpi는 그 뒤에서 실제 구현이 채워 넣는 골격이에요. Java 보안 아키텍처처럼 서비스 공급자를 플러그인 방식으로 교체할 수 있게 하는 패턴이에요. 실제 Configuration 구현체는 이 추상 클래스를 상속받아 engine* 메서드들을 구현해요.

더 알아보기 (Learn more)