[17.0.0.3 and later]

Liberty 런타임의 올바른 구성 값 위치

다음 절에서는 Liberty 런타임의 올바른 구성 값 위치에 대해 설명합니다.

환경 변수

기본 소스를 포함시키도록 요청하는 경우 모든 프로세스 환경 변수가 MicroProfile 구성 API 구성에 포함됩니다. Liberty 는 호스트 프로세스 환경 변수를 Java™ System.getenv() 메소드에 노출하고 server.env 파일의 특성에도 추가하여 결과적으로 MicroProfile 구성 API에서 사용할 수 있게 합니다. 환경 변수는 서수 300 우선순위로 포함됩니다.

Liberty server.env에서 제공받은 특성은 운영 체제 환경 변수를 사용하여 MicroProfile 구성 API 구현으로 전달됩니다. 호스트 환경에 올바른 환경 변수 이름이 포함되어 있는 특성만 server.env에서 얻을 수 있습니다. 예를 들어, Linux 환경은 환경 변수 이름에서 전체 중지(.)를 지원하지 않으므로 user.name과 같은 특성 이름이 server.env에서 지원되지 않습니다.

시스템 특성

기본 소스를 포함시키도록 요청하는 경우 System.getProperties() 방식으로 사용 가능한 모든 Java 시스템 특성이 MicroProfile 구성 API 구성에 포함됩니다. Liberty는 서버 bootstrap.properties 파일의 특성을 Java 시스템 특성에 추가합니다. 시스템 특성은 서수 400 우선순위로 포함됩니다.

MicroProfile 구성 파일 위치

기본 특성을 추가하도록 요청하는 경우 MicroProfile 구성 API는 스레드 ContextClassLoader 또는 사용자가 제공한 ClassLoader를 사용하여 ${CLASSPATH}/META-INF/microprofile-config.properties 파일의 특성을 로드합니다. Liberty 애플리케이션의 경우 META-INF 위치는 JAR 또는 WAR 파일의 루트, EAR 파일의 lib 디렉토리에 있는 JAR 또는 서버 레벨 공유 라이브러리 JAR에 있는 서브디렉토리가 될 수 있습니다. 특성 값을 제공한 특성 파일은 서수 100 우선순위로 로드됩니다.

Java ServiceLoader 로드된 소스

구성 소스는 MicroProfile 구성 프로젝트 사이트에 문서화되어 있는 API를 사용하여 프로그래밍 방식으로 등록할 수 있습니다. 또한 Java ServiceLoader 패턴은 런타임 시 동적으로 검색 및 로드되는 구성 소스 오브젝트를 찾기 위해 사용할 수 있습니다.

구성 값 범위

구성 소스는 loadResources() 메소드를 사용하여 ClassLoader 코드 방식으로 로드하거나 Java ServiceLoader 패턴 방식으로 로드합니다. 따라서 구성 값의 범위는 Liberty 내의 Java 클래스 범위를 미러링합니다. 하나의 애플리케이션 WAR 내에 있는 구성 값은 해당 구성 값이 동일한 EAR 애플리케이션 어셈블리 또는 서버의 일부인 경우에도 일반적으로 다른 WAR 파일에서 액세스할 수 없습니다. EAR의 lib 디렉토리에 있는 JAR에 ${CLASSPATH}/META-INF/microprofile-config.properties를 배치하여 EAR 간에 구성을 공유할 수 있습니다. server.env 파일에 해당 구성 값을 배치하거나, 공통 구성 값을 사용하는 데 필요한 애플리케이션에 대해 해당 commonLibrary 참조와 함께 server.xml 파일의 library 요소를 사용하여 Liberty 서버에서 구성 값을 공유할 수 있습니다.


주제의 유형을 표시하는 아이콘 개념 주제

파일 이름: twlp_microprofile_appconfig_validsources.html