12

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

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

哪里myProperties是一个简单的java.util.Propertiesbean。

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

谢谢!

4

2 回答 2

16

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

稍短的版本可能是

#{new Integer(myProperties['MIN_TIME']) * 60 * 1000}
于 2012-05-16T13:55:48.873 回答
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;

由 context 生成的 spring util properties bean 将在分配值之前进行解析和转换。

于 2013-08-08T07:52:15.613 回答