在spring中很重要的接口,spring以来的各种环境都是它的实现:
属性解析接口,主要有一下核心方法:
boolean containsProperty(String key); //是否包含指定的key
String getProperty(String key);//通过key查找属性,不存在返回null
String getProperty(String key, String defaultValue);//通过key查找属性,不存在返回默认值
<T> T getProperty(String key, Class<T> targetType);//通过key查找属性,类型转换
<T> T getProperty(String key, Class<T> targetType, T defaultValue);//通过key查找属性,类型转换,不存在返回默认值
String getRequiredProperty(String key) throws IllegalStateException;//获取必须属性值,不存在抛出异常
<T> T getRequiredProperty(String key, Class<T> targetType) throws IllegalStateException;//获取必须属性,类型转换,不存在抛出异常
String resolvePlaceholders(String text);//解析${...}文本,并返回解析值
String resolveRequiredPlaceholders(String text) throws IllegalArgumentException;//解析${...}文本,不存在抛出异常
interface Environment extends PropertyResolver:环境实现核心方法:
String[] getActiveProfiles();//获取激活的环境可以通过spring.profiles.active设置
String[] getDefaultProfiles();//默认激活环境组
boolean acceptsProfiles(String... profiles);//判断一个或多个profile包含在当前激活组中,如果profile是!开头,则判断不在
boolean acceptsProfiles(Profiles profiles);//判断当前激活环境是否是profiles
interface ConfigurablePropertyResolver extends PropertyResolver,可配置解析器:
//获取转换服务
ConfigurableConversionService getConversionService();
//设置类型转换服务
void setConversionService(ConfigurableConversionService conversionService);
//placehold前缀
void setPlaceholderPrefix(String placeholderPrefix);
//placehold后缀
void setPlaceholderSuffix(String placeholderSuffix);
//设置分隔符
void setValueSeparator(@Nullable String valueSeparator);
//设置忽略不可解析
void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders);
//设置必须属性
void setRequiredProperties(String... requiredProperties);
//验证必须属性
void validateRequiredProperties() throws MissingRequiredPropertiesException;
interface ConfigurableEnvironment extends Environment, ConfigurablePropertyResolver:
可配置环境:
//设置激活的profiles
void setActiveProfiles(String... profiles);
//添加