为加载到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