2016-04-08 19 views
1

Bu kullanici sabitlerini içeriklerim arasinda tanimladim.Yönlendirici ifadesinde kullanım sabitleri nasıl kullanılır?

<util:constant id="foo1" static-field="com.marvel.avengers.hulc.util.MyExampleConstants.FOO1"/> 
<util:constant id="foo2" static-field="com.marvel.avengers.hulc.util.MyExampleConstants.FOO2"/> 
<util:constant id="foo3" static-field="com.marvel.avengers.hulc.util.MyExampleConstants.FOO3"/> 

benim yönlendirici ifadede foo1 sabiti kullanılarak denedim ama # {foo1} gibi görünen bir fasulye kimliği değil onun değerdir. Öte yandan

<int:router input-channel="channelABC" expression=" !payload.avengersVO.powType.equals(#{foo1}) 
     and !payload.avengersVO.powType.equals(#{foo2}) 
     and !payload.avengersVO.powType.equals(#{foo3}) ? 'flowEndpoint' : 'civilWarsChan'"/> 

Bir ifadede kullanmak ama ben yönlendirici ifadesinde tanımladığınız sabitleri faydalanmak olmadığını görmek istiyor olabilir:

<int:router input-channel="channelABC" expression=" !payload.avengersVO.powType.equals(T(com.marvel.avengers.hulc.util.MyExampleConstants).FOO1) 
    and !payload.avengersVO.powType.equals(T(com.marvel.avengers.hulc.util.MyExampleConstants).FOO2) 
    and !payload.avengersVO.powType.equals(T(com.marvel.avengers.hulc.util.MyExampleConstants).FOO3) ? 'flowEndpoint' : 'civilWarsChan'"/> 

Can birisi yardım yönlendirici ifadesinde bu fasulyeden nasıl değer elde edeceğimi bilmem. Şimdiden teşekkürler.

cevap

0

Bu çalışması gerekir:

!payload.avengersVO.powType.equals(@foo2) 

davanız ince benim arar rağmen, çok:

<util:constant id="foo" static-field="org.springframework.integration.router.config.RouterParserTests.FOO"/> 

<router input-channel="constantExpressionRouter" expression="'#{foo}'"/> 

Ancak önlemek için ben edebi tırnak içine Fasulye Tanımı ifadesini sarın dikkat Her mesajda çalışma zamanında bir özellik olarak değerlendirmek için bir girişim.