2017-01-23 4 views
0

Ich versuche, wie eine Feder Ausdruck zu bilden, unterFrühling EL - wenn sonst Zustand

<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> 

, was ich zu tun ist gemeint, wenn Eigentum merchantPaymntRptJob.useDB wahr ist, dann nehmen Sie den Wert von db-Dienst oder die Verwendung Wert aus der Eigenschaftendatei.

Das Problem wird mit applicationConfigurationService.merchantPaymentCronExpression ich verschiedene Kombinationen ausprobiert - das Hinzufügen $, # oder(), aber nicht funktioniert. Können Sie bitte helfen.

+0

Probieren Sie 'systemProperties ['merchantPaymntRptJob.useDB']'. https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html –

+0

Problem ist nicht mit merchantPaymntRptJob.useDB, aber mit anderen zwei Ausdrücke. –

+2

Oh ... Es gibt ein Konstrukt, um andere Beans in SpEL '@ applicationConfigurationService' zu ​​verwenden - https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions- Bean-Referenzen –

Antwort

0

Danke für Ihre Hilfe. Darunter funktioniert jetzt.

#{ (${merchantPaymntRptJob.useDB}== true) ?(@applicationConfigurationService).merchantPaymentCronExpression :'${merchantPaymntRptJob.cronExpression}'}