У меня есть вариант использования, где я определил все мои константы в одном классе.Весной интеграции, как использовать константу Util в канале маршрутизатора
public class MyExampleConstants {
public static String FOO1 = "hulcSmash";
public static String FOO2 = "billionairePlayBoy";
public static String FOO3 = "capShield";
}
Сейчас я использую что-то вроде этого в routerChan для значений отображения:
//using exact string match in mapping value, however, want to see if the constants be used here.
<int:router input-channel="powRouterChan" resolution-required="false" expression="payload.avengersVO.powType" default-output-channel="flowEndPoint">
<int:mapping value="hulcSmash" channel="avengersHulcChan" />
<int:mapping value="billionairePlayBoy" channel="avengersIRManChan" />
<int:mapping value="capShield" channel="avengersCapAmericaChan" />
</int:router>
и маршрутизатор expresstions что-то вроде этого:
//Now these placeholders are being configured in properties
<int:router input-channel="channelABC" expression=" !payload.avengersVO.powType.equals('${avengers.hulc.smash}')
and !payload.avengersVO.powType.equals('${avengers.billionaire.PlayBoy}')
and !payload.avengersVO.powType.equals('${avengers.capShield}') ? 'flowEndpoint' : 'civilWarsChan'"/>
Теперь я добавил мой константы в мой контекст и хотим использовать их в моем канале маршрутизатора в качестве значений отображения:
<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"/>
<int:router input-channel="powRouterChan" resolution-required="false" expression="payload.avengersVO.powType" default-output-channel="flowEndPoint">
<int:mapping value="foo1" channel="avengersHulcChan" />
<int:mapping value="foo2" channel="avengersIRManChan" />
<int:mapping value="foo3" channel="avengersCapAmericaChan" />
</int:router>
и хотите обновить выражение выше что-то вроде этого, используя константы, которые я упомянутых выше:
<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'"/>
Пожалуйста suggust, как я могу использовать это. Заранее спасибо.
Спасибо @Gary Russell., Он работал !!! :) –