如何在Spring属性中进行算术运算?

时间:2011-10-26 22:01:48

标签: java xml spring properties

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
        <property name="jobDetail" ref="Job1" />
        <property name="repeatInterval" value="1" />
    </bean>

我想从属性文件(value“)加载value = "${jobs.per.second},这将被操纵。

例如:jobs.properties文件将包含:jobs.per.second = 500

我想使用算术运算(将其反转并乘以1000)(1/500 * 1000 = 2) 并用value = 2代替1。

我该如何解决?有没有办法在xml中启用算术运算?

编辑:我正在使用Spring 3.

1 个答案:

答案 0 :(得分:11)

你没有提到你正在使用的是哪个版本的Spring,但是Spring 3.0附带了Spring EL(表达式语言),它允许你在XML bean定义中使用表达式(以及其他地方,比如@Value)注释)。

<util:properties id="properties" location="classpath:jobs.properties"/>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="Job1" />
    <property name="repeatInterval" value="#{ 1000 / properties['jobs.per.second'] * 100.0 }" />
</bean>

您可以阅读有关Spring EL here

的更多信息