PropertyResolver Property, в основном имеет две функции:
Получите соответствующее значение свойства PropertyValue (GETProperty) через имя свойства PropertyName.
Замените заполнитель собственности в формате $ {PropertyName: defaultValue} на фактическое значение (ResiplePlace Holders).
ПРИМЕЧАНИЕ. Значения свойств, полученные GetProperty, являются все значения после вызова Resipleplace Holders для замены заполнителей.
Диаграмма компонентов системы заключается в следующем:
Интерфейс PropertyResolver:
Этот интерфейс определяет все функции, которые имеет компонент. Одним из них является получение соответствующего значения через ключ. Когда значение не может быть получено, существует 3 параметра: верните нулевое значение, используйте указанное значение по умолчанию или добавьте незаконное исключение состояния. Полученное значение - тип строки по умолчанию. Конечно, его также можно считать указанием типа, который зависит от конверсии для преобразования типа.
Существует другая проблема: значение свойства может содержать заполнители в формате $ {}, поэтому к интерфейсу была добавлена другая функция, чтобы заменить заполнители в значении свойства (примечание: заполнители не разрешены на имена атрибутов, и даже если они существуют, компоненты не будут заменены в качестве заполнителей). Когда заполнитель не может быть заменен, существует два варианта: сохраните его как есть или бросьте незаконное исключение параметров. Конкретный интерфейс заключается в следующем:
Конфигурируемый интерфейс PropertyResolver:
Этот интерфейс определяет, как настроен сам компонент. Например: я только что упомянул, что при получении значения вы можете указать любой тип, который зависит от конверсии для преобразования типа. Текущий интерфейс обеспечивает настройки и приобретение ConversionService. Кроме того, вы можете настроить формат заполнителей свойств, в том числе: префикс заполнителей (по умолчанию «$ {»), суффикс заполнителей (по умолчанию «}»), сепаратор значений заполнителей (по умолчанию - «:», используется для разделения имени Property и defaultValue). Компонент также может установить, какие атрибуты должны существовать, а также может проверить, действительно ли атрибуты, которые должны существовать, существуют (если они не существуют, будет брошено исключение). Конкретный интерфейс заключается в следующем:
AbstractPropertyResolver Class:
Аннотация класса реализации для двух вышеупомянутых интерфейсов. Он реализует все методы конфигурируемого интерфейса PropertyResolver. Что касается метода интерфейса PropertyResolver, существует 3 метода GetProperty, которые необходимо реализовать в подклассах (другие перегруженные методы называют эти 3 метода):
String getProperty (string key); <t> t getProperty (String Key, Class <t> targetType); <T> class <t> getProperTyAsclass (String Key, Class <t> targetType);/*** Текущий класс также определяет дополнительный альбомный метод, чтобы непосредственно вернуть полученное значение (беззамещение заполнителя). * Общий метод GetProperty заменит заполнителя в значении по умолчанию и вернет его. */Защищенная абстрактная строка getPropertyasRawString (String Key); Что касается замены заполнителя недвижимости, то это делается с помощью двух объектов PropertyplaceholderHelper Property Placeholder Assistant (класс инструментов), одним из этих двух объектов является строгий режим, а другой-это не Strict Mode.
PropertySourcesPropertyResolver Class:
Этот класс является единственным полным классом реализации в системе. В качестве источника источника недвижимости он принимает коллекцию источника имущества недвижимости (List <PropertySource> Внутренний список источников недвижимости), итерация по каждому имуществу в порядок и возвращает, если он получает не нулевое значение свойства.