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

标签 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 = "${jobs.per.second}") 中加载 value,该文件将被操作。

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

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

我该怎么做?有没有办法在xml中启用算术运算?

编辑:我正在使用 Spring 3。

最佳答案

您没有提及您使用的是哪个版本的 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 的更多信息

关于java - 如何在 Spring 属性中进行算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909475/

相关文章:

java - 如何在CXF中重命名SOAP响应的元素?

java - 尝试通过 HTTP 为 Spring Web MVC 服务配置 XML 编码时出现 "406 Not Acceptable"

java - 使用 Hibernate 导入和规范化 XML

java - Spring hibernate

java - 如何为 Spring、Android 和 Plain JAR 组织 Gradle?

java - 如何获取对循环内部创建的集合的引用?

java - foreach 排序列表的速度

java - 在 Eclipse 中动态 Spring AOP?

xml - Xpath 使用谓词在数据中匹配带有斜线的节点

spring - org.springframework.beans.factory.BeanCreationException : Error creating bean with name 'requestMappingHandlerMapping' defined