Spring源码之ConfigurableEnvironment Environment ConfigurablePropertyResolver PropertyResolver

PropertyResolver:接口以解析任何底层资源的属性。

boolean containsProperty(String key);返回给定的属性KEY是否可用于解析,如果给定密钥的值不是NULL。

String getProperty(String key);返回与给定键关联的属性值,或者返回NULL,如果KEY不能被解析

String getProperty(String key, String defaultValue);返回与给定键关联的属性值,或者返回defaultValue,如果KEY不能被解析

<T> T getProperty(String key, Class<T> targetType);返回与给定键关联的属性值,或者返回NULL,如果KEY不能被解析

<T> T getProperty(String key, Class<T> targetType, T defaultValue);返回与给定键关联的属性值,或者返回defaultValue,如果KEY不能被解析

String getRequiredProperty(String key) throws IllegalStateException;返回与给定键关联的属性值,KEY不可为空

<T> T getRequiredProperty(String key, Class<T> targetType) throws IllegalStateException;返回与给定键关联的属性值,转换为给定的targetType

String resolvePlaceholders(String text);解决$ {…}占位符文本中,代之以相应的属性值作为解决由{@link #getProperty}。不具有默认值的不可解析占位符被忽略并通过不变的传递。

String resolveRequiredPlaceholders(String text) throws IllegalArgumentException;解决$ {…}占位符文本中,代之以相应的属性值作为解决由{@link #getProperty}。不具有默认值的不可解析占位符抛出IllegalArgumentException。

ConversionService 类型转换的服务接口。这是进入转换系统的入口点。调用{@link #convert(Object, Class)}以使用该系统执行线程安全类型转换。

ConverterRegistry 用于注册具有类型转换系统的转换器。

ConfigurableConversionService 父类为ConversionService

配置接口由大多数但不是全部ConversionService类型实现。合并由{@link ConversionService}公开的只读操作和{@link ConverterRegistry}的转变操作,以便方便地临时添加和删除{@org.springframework.core.convert.converter.Converter
 * Converters。后者是特别有用当工作于{@link org.springframework.core.env.ConfigurableEnvironment ConfigurableEnvironment}接口在应用程序上下文引导代码

ConfigurablePropertyResolver:配置接口由大多数,如果不是所有{@link PropertyResolver}类型实现。提供访问和定制将属性值从一种类型转换为另一种类型时使用的{@link org.springframework.core…ConversionService ConversionService}的工具。

ConfigurableConversionService getConversionService();返回对属性执行类型转换时使用的{@link ConfigurableConversionService}

void setConversionService(ConfigurableConversionService conversionService);设置对属性执行类型转换时使用的{@link ConfigurableConversionService}

void setPlaceholderPrefix(String placeholderPrefix);设置由这个解析器替换的占位符必须开始的前缀。

void setPlaceholderSuffix(String placeholderSuffix);设置由该解析器替换的占位符的后缀必须结束。

void setValueSeparator(String valueSeparator);指定由此解析器替换的占位符与其关联的默认值之间的分隔字符,或者{@code null}如果没有这样的特殊字符应该作为值分隔符处理。

void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders);

void setRequiredProperties(String… requiredProperties);指定哪些属性必须存在,以{@link #validateRequiredProperties()}.验证

void validateRequiredProperties() throws MissingRequiredPropertiesException;验证{@link#setRequiredProperties}指定的每个属性是否存在,并解析为非{@code null}值。

Environment  :表示当前应用程序运行的环境的接口,应用环境模型的两个关键方面:profiles和properties,有关属性访问的方法通过{@link PropertyResolver}超接口公开。配置文件是一个命名逻辑组bean定义,只有在给定的配置文件激活时才能将其注册到容器中。bean可以被分配给一个配置文件,无论是在XML中定义还是通过注释;属性在几乎所有应用程序中都扮演着重要的角色,并且可能来源于各种来源:属性文件、JVM系统属性、系统环境变量、JNDI、servlet上下文参数、ad-hoc Properties对象、Maps等等。环境对象与属性的关系的作用是为用户提供方便的服务接口,用于配置属性源并从属性源解析属性。托管在ApplicationContext中的BEAN 可以注册为EnvironmentAware或者Environment为了直接查询配置文件状态或解析属性。环境对象的配置必须通过{@code ConfigurableEnvironment} 接口,从所有AbstractApplicationContext子类方法返回。

String[] getActiveProfiles();返回显式为该环境激活的配置文件集。

String[] getDefaultProfiles();当未显式设置活动配置文件时,返回默认情况下要激活的配置文件集。

boolean acceptsProfiles(String… profiles);返回给定的配置文件中的一个或多个是否是活动的,或者在没有显式活动配置文件的情况下,是否将一个或多个给定的配置文件包含在默认配置文件中。

ConfigurableEnvironment 父类为Environment, ConfigurablePropertyResolver

配置接口由大多数,如果不是全部{@link Environment}类型实现。提供设置活动和默认配置文件以及操作底层属性源的工具。

当ApplicationContext正在使用环境时,在调用上下文的刷新方法之前执行任何此类PropertySource操作都很重要。这确保了在容器引导过程中所有属性源都可用。

void setActiveProfiles(String… profiles);

void addActiveProfile(String profile);

void setDefaultProfiles(String… profiles);

MutablePropertySources getPropertySources();

Map<String, Object> getSystemProperties();

Map<String, Object> getSystemEnvironment();

void merge(ConfigurableEnvironment parent);

 

 

    原文作者:Spring Boot
    原文地址: https://blog.csdn.net/AnY11/article/details/83898818
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞