为加载到Spring中的Props文件中的属性自动修剪尾随空格

我正在使用PropertiesFactoryBean从典型的Properties文件加载属性。 反正有没有让Spring从prop值自动修剪尾随空格?

您可以通过将自定义PropertiesPersister传递到PropertiesFactoryBean配置来自定义“ Properties加载function。 PropertiesPersister使用PropertiesPersister实例来解析Properties文件数据。 默认实现遵循java.util.Properties的本机解析。 您可以通过提供自己的PropertiesPersister接口实现来自定义解析逻辑。

正如Chad所说,Spring用版本4.3RC1解决了这个问题。 但你需要手动设置修剪函数,参数“trimValues”如此(默认为“false”):

      ...   

我没有找到任何关于此的文档,但我从Spring API中推断出它。

您可以定义自己的属性配置器:

 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 ); } } 

然后,您必须在bean_config.xml中定义它

       

另一种方法是,如果您使用@Value注释将属性设置为字段:

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

如果文件中不存在该属性,则抛出NullPointerException