我有一个(String
,显然)属性,用分钟表示,我想在我做算术之前将其转换为int
并将其注入我的Spring bean。现在我有这个SpEL表达式:
#{T(java.lang.Integer).parseInt(myProperties['MIN_TIME']) * 60 * 1000}
其中myProperties
是一个简单的java.util.Properties
bean。
并不是说我对这个表达式特别恼火,但是:SpEL是否有更漂亮的内置方式将字符串解析为数值?
谢谢!
答案 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将在分配值之前进行解析和转换。