2017-01-23 4 views
0

Я пытаюсь сформировать выражение Spring, как показано нижеSpring EL - если еще условие

<bean id="merchantPayment2-cronTrigger" class="uk.co.xxx.batch.merchantpayment2.CronTrigger"> 
    <property name="jobDetail" ref="merchantPayment2-jobDetail" /> 
    <property name="cronExpression" value="#{ ${merchantPaymntRptJob.useDB}== true ? (applicationConfigurationService.merchantPaymentCronExpression) : ${merchantPaymntRptJob.cronExpression} }"/> 
</bean> 

, что я хотел сделать, если свойство merchantPaymntRptJob.useDB истинно, то принимает значение из БД с помощью сервиса или использовать значение из файла свойства.

Проблема в использовании applicationConfigurationService.merchantPaymentCronExpression Я пробовал разные комбинации - добавление $, # или just(), но не работает. Вы можете помочь.

+0

Попробуйте 'systemProperties ['merchantPaymntRptJob.useDB']'. https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html –

+0

проблема не с продавцомPaymntRptJob.useDB, а с другими двумя выражениями. –

+2

Ох ... существует конструкция для использования других bean-компонентов в SpEL '@ applicationConfigurationService' - https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions- боб ссылки –

ответ

0

Благодарим за помощь. Ниже теперь работает.

#{ (${merchantPaymntRptJob.useDB}== true) ?(@applicationConfigurationService).merchantPaymentCronExpression :'${merchantPaymntRptJob.cronExpression}'} 
Смежные вопросы