Spring表达式语言(SpEL):将String解析为int

时间:2012-05-16 13:29:42

标签: java spring spring-el

我有一个(String,显然)属性,用分钟表示,我想在我做算术之前将其转换为int并将其注入我的Spring bean。现在我有这个SpEL表达式:

#{T(java.lang.Integer).parseInt(myProperties['MIN_TIME']) * 60 * 1000}

其中myProperties是一个简单的java.util.Properties bean。

并不是说我对这个表达式特别恼火,但是:SpEL是否有更漂亮的内置方式将字符串解析为数值?

谢谢!

2 个答案:

答案 0 :(得分:11)

看起来不像,例如看看开发人员如何在这里创建它们:https://jira.springsource.org/browse/SPR-8716

稍短的版本可能是

#{new Integer(myProperties['MIN_TIME']) * 60 * 1000}

答案 1 :(得分:0)

另一种方法是使用util命名空间来定义属性bean, ...     的xmlns:UTIL =" HTTP://www.springframework.org/schema/util" ... http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd ...

<util:properties id="apiProperties"
    location="classpath:/api.properties" />

然后使用属性bean的替代语法

@Value("#{apiProperties['api.orders.pingFrequency']}")
private Integer pingFrequency;

上下文生成的spring util属性bean将在分配值之前进行解析和转换。