gpt4 book ai didi

java - 如何在路由器表达式中使用 util 常量?

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:13 27 4
gpt4 key购买 nike

我已经在我的上下文中定义了这些 util 常量。

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

我尝试在路由器表达式中使用 foo1 常量,但看起来 #{foo1} 是一个 bean id,而不是它的值。

<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'"/>

另一方面,我可以在表达式中使用它,但想看看是否可以使用我在路由器表达式中定义的常量:

<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'"/>

有人可以帮我知道如何在路由器表达式中从这个 bean 中获取值吗?提前致谢。

最佳答案

这应该有效:

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

不过,你的情况看起来也很适合我:

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

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

但是,请注意,我将 Bean 定义表达式包装到文字引号中,以避免尝试在每条消息的运行时将其计算为属性。

关于java - 如何在路由器表达式中使用 util 常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36504051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com