PropertyResolver Property Solver에는 주로 두 가지 기능이 있습니다.
PropertyName 속성 이름을 통해 해당 PropertyValue 속성 값 (getProperty)을 가져옵니다.
속성 자리 표시기를 $ {propertyname : defaultValue} 형식으로 교체하십시오.
참고 : GetProperty가 얻은 속성 값은 자리 소유자 교체를 위해 Resolveplyploshender를 호출 한 후에 모든 값입니다.
구성 요소 시스템 다이어그램은 다음과 같습니다.
PropertyResolver 인터페이스 :
이 인터페이스는 구성 요소의 모든 기능을 정의합니다. 하나는 키를 통해 해당 값을 얻는 것입니다. 값을 얻을 수없는 경우 3 가지 옵션이 있습니다. NULL 값을 반환하거나 지정된 기본값을 사용하거나 불법 상태 예외를 던지십시오. 얻은 값은 기본적으로 문자열 유형입니다. 물론 유형 변환을위한 변환 서비스에 따라 유형을 지정하는 것으로 간주 될 수도 있습니다.
또 다른 문제가 있습니다 : 속성 값은 $ {} 형식의 자리 표시자를 포함 할 수 있으므로 인터페이스에 또 다른 함수가 추가되었습니다. 자리 표시자를 속성 값으로 바꾸는 것이 좋습니다 (참고 : 자리 표시자는 속성 이름을 허용하지 않으며, 그에도 부정 요소가 자리 표시 자로 교체되지 않습니다). 자리 표시자를 교체 할 수없는 경우 두 가지 옵션이 있습니다. 그대로 유지하거나 불법 매개 변수 예외를 던지십시오. 특정 인터페이스는 다음과 같습니다.
configurablePropertyResolver 인터페이스 :
이 인터페이스는 구성 요소 자체가 구성되는 방식을 정의합니다. 예를 들어, 방금 값을 얻을 때 유형 변환을위한 변환 서비스에 따라 모든 유형을 지정할 수 있다고 언급했습니다. 현재 인터페이스는 ConversionService의 설정 및 획득을 제공합니다. 또한 : 자리 표시 자 접두사 (기본값은 "$ {"), 자리 표시 자 접미사 (기본값은 "}"), 자리 표시 자 값 분리기 (기본값은 ":", 속성 이름과 기본값을 분리하는 데 사용)를 포함한 속성 자리 표시 자 형식을 구성 할 수 있습니다. 구성 요소는 또한 존재 해야하는 속성을 설정할 수 있으며 존재 해야하는 속성이 실제로 존재하는지 여부를 확인할 수 있습니다 (존재하지 않는 경우 예외가 발생). 특정 인터페이스는 다음과 같습니다.
AbstractPropertyresolver 클래스 :
위의 두 인터페이스에 대한 초록 구현 클래스. ConfigurablePropertyResolver 인터페이스의 모든 방법을 구현합니다. PropertyResolver 인터페이스 방법과 관련하여 서브 클래스로 구현 해야하는 3 개의 getproperty 메소드가 있습니다 (다른 과부하 메소드는이 3 가지 방법을 호출합니다).
String getProperty (String key); <t> t getProperty (String key, class <t> targettype); <t> class <T> class <T> getPropertyAsClass (String key, class <t> targettype);/*** 현재 클래스는 획득 한 값을 직접 반환하기위한 추가 추상 메소드를 정의합니다 (자리 표시 자 교체 없음). * 일반적인 getProperty 방법은 기본적으로 자리 표시자를 값 값으로 바꾸고 반환합니다. */보호 된 추상 문자열 getPropertyAsRawString (문자열 키); Property 자리 표시자를 교체 할 때, 두 개의 PropertyPlaceHolderHelper Picture Pathholder Assistant (Tool Class) 객체의 도움으로 수행되며,이 두 개체 중 하나는 엄격한 모드이고 다른 개체는 비 스트릭 모드입니다.
PropertySourcesPropertyResolver 클래스 :
이 클래스는 시스템에서 유일한 완전한 구현 클래스입니다. 속성 값의 소스로서 PropertySources 속성 소스 컬렉션 (List <PropertySource> 내부 고정 된 속성 소스 목록)을 사용하고 각 PropertySource를 순서대로 반복하고 Null 속성 값을 얻지 못한 경우 반환합니다.