2011-08-11 3 views

答えて

3

PropertiesFactoryBean設定にカスタムPropertiesPersisterを渡すことで、Propertiesの読み込み機能をカスタマイズできます。 PropertiesFactoryBeanは、PropertiesPersisterインスタンスを使用して、プロパティファイルのデータを解析します。デフォルトの実装は、ネイティブの構文解析java.util.Propertiesに従います。 PropertiesPersisterインターフェイスの独自の実装を提供することによって、解析ロジックをカスタマイズできます。

+0

論理 – Johnny

+1

FWIWと聞いていただきありがとうございます。https://jira.springsource.org/browse/SPR-5839でこれを行うことができるSpringのチケットがあります。 多くのアクティビティはありません;) – Chad

0

あなたがあなた自身の財産コンフィギュラ定義することができます:あなたはプロパティを設定するには、@value注釈を使用しているなら、あなたはあなたのbean_config.xml

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="location" value="classpath:main.properties" /> 
</bean> 

<bean id="trimPropertyPlaceholderConfigurer" class="your.company.package.TrimPropertyPlaceholderConfigurer"> 
    <property name="properties" ref="applicationProperties" /> 
</bean> 

別の方法を定義する必要があります

package your.company.package; 

public class TrimPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { 

@Override 
protected String resolvePlaceholder(String placeholder, Properties props) { 
     String value = super.resolvePlaceholder(placeholder, props); 

     return (value != null ? value.trim() : null); 
    } 
} 

@Value(value = "#{applicationProperties['my.app.property'].trim()}") 

プロパティがexiでない場合は、NullPointerExceptionがスローされます。ファイル内のsts

1

チャドは言ったように、Springはこの問題をバージョン4.3RC1で解決しました。私はこれについての文書を発見していないが、私は春のAPIからそれを推測

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="trimValues" value="true"/> 
    <property name="locations"> 
     <list> 
     ... 
     </list> 
    </property> 

:しかし、あなたは手動ので(デフォルト「偽」の場合)などのパラメータ「trimValues」とトリム機能に設定する必要があります。

関連する問題