見て、特にprocessProperties方法:
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,
final ConfigurablePropertyResolver propertyResolver) throws BeansException {
propertyResolver.setPlaceholderPrefix(this.placeholderPrefix);
propertyResolver.setPlaceholderSuffix(this.placeholderSuffix);
propertyResolver.setValueSeparator(this.valueSeparator);
StringValueResolver valueResolver = new StringValueResolver() {
@Override
public String resolveStringValue(String strVal) {
String resolved = (ignoreUnresolvablePlaceholders ?
propertyResolver.resolvePlaceholders(strVal) :
propertyResolver.resolveRequiredPlaceholders(strVal));
if (trimValues) {
resolved = resolved.trim();
}
return (resolved.equals(nullValue) ? null : resolved);
}
};
doProcessProperties(beanFactoryToProcess, valueResolver);
}
あなたはそれが簡単なチェックが含まれていることを見ることができます。
はまた、この方法はがを保護されていることがわかります。
解決策は、メソッドをオーバーライドする独自のPropertySourcesPlaceHolderConfigurerサブクラスを作成することです。 これにはまったく同じコードが含まれていますが、警告が記録されます。
ので
String resolved = (ignoreUnresolvablePlaceholders ?
propertyResolver.resolvePlaceholders(strVal) :
propertyResolver.resolveRequiredPlaceholders(strVal));
そして、いくつかのコードを共有するためにいいだろう
...
たぶんない最も簡単な解決策となり、我々はの鮮明な画像を持っている...その方法あなたが言っていること – Sohlowmawn