java - Java 인터페이스에 대한 Java 특성 파일 바인딩

출처 java api properties configuration

GWT를 사용하면 다음과 같은 것이 있습니다.

public interface LoginConstants extends Constants {
   @DefaultStringValue("Wellcome to my super app")
   @Key("appDescription")
   String appDescription();

   @DefaultStringValue("Ok")
   @Key("okButtonLabel")
   String okButtonLabel();
}


그런 다음 GWT.create (LoginConstant.class)를 수행하는 클래스에서 사용할 수 있습니다. 이러한 방식으로 인터페이스는 동적 구현에 의해 지원되며 loginConstants.appDescription ()을 호출하면 @Key 주석을 사용하여 속성 파일에서 포함 된 값을 반환합니다. 속성 파일의 키를 참조합니다. 속성 파일이 속성을 누락하면 de @DefaultStringValue가 반환됩니다. 이것은 국제화에 사용되지만 구성에도 사용할 수 있습니다.
그러나 GWT를 사용하면 이는 클라이언트 측 (즉, JavaScript로 번역)에서 사용되며 구성이 아닌 i18n 용으로 사용됩니다.

그러나이 아이디어는 구성 처리에도 매우 편리합니다.

누군가 코드를 GWT에 바인딩하지 않고도 서버 측에서 유사한 작업을 수행 할 수있는 프레임 워크를 알고 있는지 궁금합니다. 즉. 구성 처리를 위해 특별히 설계된 이러한 종류의 논리를 구현하는 라이브러리가있는 경우 나는 이와 같은 것을 알지 못합니다.

GWT의 기능에 대한 참조 : https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nConstants
질문에 대한 자체 솔루션을 구현했습니다.


기본 사용법

OWNER API가 사용하는 접근 방식은 Java 인터페이스를 정의하는 것입니다.
속성 파일에 연결됩니다.

속성 파일이 ServerConfig.properties로 정의되어 있다고 가정합니다.

port=80
hostname=foobar.com
maxThreads=100


이 속성에 액세스하려면 편리한 Java 인터페이스를 정의해야합니다.
ServerConfig.java에서 :

public interface ServerConfig extends Config {
    int port();
    String hostname();
    int maxThreads();
}


이 인터페이스를 Properties Mapping Interface라고 부르거나
매핑 인터페이스의 목표는 속성을 쉽게 매핑하는 것이므로
코드를 사용하십시오.

그런 다음 코드 내부에서 사용할 수 있습니다.

public class MyApp {
    public static void main(String[] args) {
        ServerConfig cfg = ConfigFactory.create(ServerConfig.class);
        System.out.println("Server " + cfg.hostname() + ":" + cfg.port() +
                           " will run " + cfg.maxThreads());
    }
}


그러나 이것은 빙산의 일각에 불과합니다.


여기에서 계속 읽기 : Basic usage || Website || Github

여전히 몇 가지 기능을 염두에두고 있지만 현재 구현은 질문에 설명 된 기본 기능보다 조금 더 나아갑니다.

샘플과 문서를 추가해야합니다.
관련 기사

java - 날짜 시간 형식 Java로 시간 추가

java - Java의 내부 클래스에서 변수에 액세스

java - ArrayIndexOutOfBoundsException 데이터 액세스 시도

java - charAt ()은 문자열을 반환하지 않습니까?

enums - Java API에서 열거 형 사용

java - 자바에서 정수 비교

java - RandomAccess 인터페이스, 왜 메소드가 없습니까?

java - "리소스로 시도"에 문제가 있음

java - 배포 (게시) 후 Weblogic 오류 : 오류 503-- 서비스를 사용할 수 없음

java - Java의 arraylist에 대용량 파일을로드하는 가장 좋은 방법