package org.springframework.core.env;
import org.springframework.core.convert.support.ConfigurableConversionService;
import org.springframework.lang.Nullable;
/**
* 此接口是大多数PropertyResolver实现类的父接口,它规范了使用property的方法,
* 并且使用户可以定制化PropertyResolver在解析和转换property时候的逻辑
*/
public interface ConfigurablePropertyResolver extends PropertyResolver {
/**
* 返回在解析属性时使用的ConfigurableConversionService。此方法的返回值可被用户定制化,
* 例如可以移除或者添加Converter
* ConfigurableConversionService cs = env.getConversionService();
* cs.addConverter(new FooConverter());
*/
ConfigurableConversionService getConversionService();
/**
* 设置在涉及到属性转换操作时所使用到的ConfigurableConversionService
*/
void setConversionService(ConfigurableConversionService conversionService);
/**
* 设置该 resolver 所能处理的占位符的前缀
*/
void setPlaceholderPrefix(String placeholderPrefix);
/**
* 设置该 resolver 所能处理的占位符的后缀
*/
void setPlaceholderSuffix(String placeholderSuffix);
/**
* 指定该resolver所能替换的分隔符与其默认值直接的分隔符,
* 如果不存在分隔符,则传null
*/
void setValueSeparator(@Nullable String valueSeparator);
/**
* 是否忽略不可解析的嵌套占位符
*/
void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders);
/**
* 指定哪些属性是必须属性
*/
void setRequiredProperties(String... requiredProperties);
/**
* 验证所有的必须属性是否都存在,并且属性值非null
* 否则抛出 MissingRequiredPropertiesException
*/
void validateRequiredProperties() throws MissingRequiredPropertiesException;
}
网友评论