Как сделать арифметику в свойствах Spring? - PullRequest
10 голосов
/ 27 октября 2011
<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 Ответ

11 голосов
/ 27 октября 2011

Вы не упомянули, какую версию Spring вы используете, но Spring 3.0 поставляется с Spring EL (язык выражений), который позволяет использовать выражения в определениях bean-компонентов XML (а также в других местах, таких как @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 вы можете прочитать здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...