ConfigurationSpi — Configuration의 서비스 공급자 인터페이스
ConfigurationSpi — Configuration의 서비스 공급자 인터페이스
ConfigurationSpi는 Configuration 클래스의 서비스 공급자 인터페이스(SPI)를 정의하는 추상 클래스예요. Configuration 구현을 제공하려는 각 서비스 공급자는 이 클래스의 모든 추상 메서드를 구현해야 해요.
본문
public abstract class ConfigurationSpi extends Object
이 추상 클래스의 하위 클래스 구현은 Configuration.Parameters 객체를 입력 인자로 받는 공개 생성자를 제공해야 해요. 이 생성자는 Configuration.Parameters 입력을 이해하지 못하면 IllegalArgumentException도 던져야 해요.
생성자
ConfigurationSpi()— 하위 클래스에서 호출하기 위한 생성자예요.
메서드
protected abstract AppConfigurationEntry[] engineGetAppConfigurationEntry(String name)— 지정된name에 대한AppConfigurationEntry들을 검색해요.name은Configuration을 인덱싱하는 데 사용되는 이름이고, 지정된name에 대한AppConfigurationEntry배열을 반환하며 항목이 없으면null을 반환해요.protected void engineRefresh()—Configuration을 새로고침·다시 로드해요. 이 메서드는 이Configuration객체가 구현 의존적인 방식으로 내용을 refresh/reload하게 해요. 예를 들어 이Configuration이 파일에 항목을 저장한다면 refresh를 호출하면 파일을 다시 읽을 수 있어요. 기본 구현은 아무것도 하지 않아요. 구현이 refresh를 지원한다면 이 메서드를 오버라이드해야 해요. 호출자가 refresh할 권한이 없으면SecurityException이 발생해요.
SPI란 무엇일까요?
Configuration은 사용자에게 보이는 공개 API이고, ConfigurationSpi는 그 뒤에서 실제 구현이 채워 넣는 골격이에요. Java 보안 아키텍처처럼 서비스 공급자를 플러그인 방식으로 교체할 수 있게 하는 패턴이에요. 실제 Configuration 구현체는 이 추상 클래스를 상속받아 engine* 메서드들을 구현해요.