3.2. MicroProfile Config 구성
3.2.1. ConfigSource 관리 리소스에 속성 추가 링크 복사링크가 클립보드에 복사되었습니다!
구성 소스 하위 시스템에 직접 속성을 관리 리소스로 저장할 수 있습니다.
프로세스
ConfigSource를 생성하고 속성을 추가합니다.
/subsystem=microprofile-config-smallrye/config-source=props:add(properties={"name" = "jim"})
3.2.2. 디렉터리를 ConfigSources로 구성 링크 복사링크가 클립보드에 복사되었습니다!
속성이 파일로 디렉터리에 저장되면 file-name은 속성의 이름이고 파일 콘텐츠는 속성 값입니다.
프로세스
파일을 저장할 디렉터리를 생성합니다.
$ mkdir -p ~/config/prop-files/디렉터리로 이동합니다.
$ cd ~/config/prop-files/속성
이름값을 저장할 파일이름을생성합니다.$ touch name속성 값을 파일에 추가합니다.
$ echo "jim" > name파일 이름이 속성인 ConfigSource를 생성하고 파일의 값은 속성 값을 생성합니다.
/subsystem=microprofile-config-smallrye/config-source=file-props:add(dir={path=~/config/prop-files})그러면 다음과 같은 XML 구성이 생성됩니다.
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="file-props"> <dir path="/etc/config/prop-files"/> </config-source> </subsystem>
3.2.3. 루트 디렉터리를 ConfigSources로 구성 링크 복사링크가 클립보드에 복사되었습니다!
루트 특성을 사용하여 여러 MicroProfile ConfigSource 디렉터리의 루트 디렉터리로 디렉터리를 정의할 수 있습니다.
중첩된 루트 속성은 /subsystem=microprofile-config-undercloudrye/config-source=* 리소스에 대한 dir complex 속성의 일부입니다. 이렇게 하면 동일한 루트 디렉터리를 공유하는 경우 여러 ConfigSource 디렉터리를 지정할 필요가 없습니다.
root 디렉토리 내에서 직접 모든 파일은 무시됩니다. 구성에 사용되지 않습니다. 최상위 디렉터리는 ConfigSources로 처리됩니다. 중첩된 디렉터리도 무시됩니다.
최상위 디렉토리의 ConfigSources에는 기본적으로 /subsystem=microprofile-config-undercloudrye/config-source=* 리소스의 ordinal 이 할당됩니다.
최상위 디렉터리에 config_ordinal 파일이 포함된 경우 파일에 지정된 값이 기본 ordinal 값을 재정의합니다. 동일한 서수 의 상위 수준 디렉터리에 동일한 항목이 포함된 경우 디렉터리 이름이 알파벳순으로 정렬되고 첫 번째 디렉터리가 사용됩니다.
사전 요구 사항
-
MicroProfile Config 확장을 설치하고
microprofile-config-undercloudrye하위 시스템을 활성화했습니다.
프로세스
- 터미널을 엽니다.
파일을 저장할 디렉터리를 생성합니다.
mkdir -p ~/etc/config/prop-files/생성한 디렉터리로 이동합니다.
cd ~/etc/config/prop-files/속성
이름값을 저장할 파일이름을생성합니다.touch name속성 값을 파일에 추가합니다.
echo "jim" > nameCLI에서 다음 명령을 실행하여 파일 이름이 속성이고 파일에 속성 값이 포함된 ConfigSource를 생성합니다.
/subsystem=microprofile-config-smallrye/config-source=prop-files:add(dir={path=/etc/config, root=true})그러면 XML 구성이 생성됩니다.
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:2.0"> <config-source name="prop-files"> <dir path="/etc/config" root="true"/> </config-source> </subsystem>
3.2.4. ConfigSource 클래스에서 ConfigSource 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 org.eclipse.microprofile.config.spi.ConfigSource 구현 클래스를 생성하고 구성 값에 대한 소스를 제공할 수 있습니다.
프로세스
다음 관리 CLI 명령은
org.example이라는 JBoss 모듈에서 제공하는org.example.My라는 구현 클래스에 대한 ConfigSource를 생성합니다.ConfigSourceorg.example모듈의ConfigSource를 사용하려면 <module name="org.eclipse.microprofile.config.api"/> 종속성을path/to/org/example/main/module.xml파일에 추가합니다./subsystem=microprofile-config-smallrye/config-source=my-config-source:add(class={name=org.example.MyConfigSource, module=org.example})이 명령을 실행하면
microprofile-config-undercloudrye하위 시스템에 대해 다음과 같은 XML 구성이 생성됩니다.<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source name="my-config-source"> <class name="org.example.MyConfigSource" module="org.example"/> </config-source> </subsystem>
사용자 정의 org.eclipse.microprofile.config.spi.ConfigSource 구현 클래스에서 제공하는 속성은 모든 JBoss EAP 배포에서 사용할 수 있습니다.
3.2.5. ConfigSourceProvider 클래스에서 ConfigSource 구성 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
여러 ConfigSource 인스턴스의 구현을 등록하는 사용자 지정 org.eclipse.microprofile.config.spi.ConfigSourceProvider 구현 클래스를 생성하고 구성할 수 있습니다.
프로세스
config-source-provider를 생성합니다./subsystem=microprofile-config-smallrye/config-source-provider=my-config-source-provider:add(class={name=org.example.MyConfigSourceProvider, module=org.example})이 명령은
org.example이라는 JBoss 모듈에서 제공하는org.example.MyConfigSourceProvider라는 구현 클래스에 대해config-source-provider를 생성합니다.org.example모듈의config-source-provider를 사용하려면 <module name="org.eclipse.microprofile.config.api"/> 종속성을path/to/org/example/main/module.xml파일에 추가합니다.이 명령을 실행하면
microprofile-config-undercloudrye하위 시스템에 대해 다음과 같은 XML 구성이 생성됩니다.<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"> <config-source-provider name="my-config-source-provider"> <class name="org.example.MyConfigSourceProvider" module="org.example"/> </config-source-provider> </subsystem>
ConfigSourceProvider 구현에서 제공하는 속성은 모든 JBoss EAP 배포에서 사용할 수 있습니다.