Java 如何访问Apache Camel 2.14.1中Hashmap中的属性?
我是一个刚开始使用Camel的人,我还有一个疑问,在ApacheCammel 2.14.1中,如何访问HashMap中的属性 我有下一个声明的beanJava 如何访问Apache Camel 2.14.1中Hashmap中的属性?,java,spring,apache-camel,Java,Spring,Apache Camel,我是一个刚开始使用Camel的人,我还有一个疑问,在ApacheCammel 2.14.1中,如何访问HashMap中的属性 我有下一个声明的bean <bean id="mapRegion" class="java.util.HashMap"> <constructor-arg> <map key-type="java.lang.String" value-type="java.lang.String">
<bean id="mapRegion" class="java.util.HashMap">
<constructor-arg>
<map key-type="java.lang.String" value-type="java.lang.String">
<entry key="R01" value="one" />
<entry key="R02" value="two" />
</map>
</constructor-arg>
</bean>
如果我用camel打印地图,我可以看到值
<log message="*** MAP = ${ref:mapRegion}" loggingLevel="DEBUG" />
*** MAP = {R02=two, R01=one}
***MAP={R02=2,R01=1}
如何访问地图中的特定属性?我试过了
<log message="*** MAP = ${ref:mapRegion.R01}" loggingLevel="DEBUG" />
<log message="*** MAP = ${ref:mapRegion[R01]}" loggingLevel="DEBUG" />
<log message="*** MAP = ${ref:mapRegion['R01']}" loggingLevel="DEBUG" />
但非此不可,总是打印空值
提前感谢在简单语言中,
ref
函数不支持引用bean并进行OGNL或映射查找
顺便问一下,你的用例是什么。您似乎只是在调试级别记录它。但是这样做的业务用例/价值是什么。我找到的解决方案是下一个解决方案
<setProperty propertyName="SERVICE_REGION">
<simple>${bean:mapRegion?method=get(${property.phoneRegion})}</simple>
</setProperty>
${bean:mapRegion?方法=get(${property.phoneRegion})}
使用bean和bean的id,我们可以调用HashMap的一个特定方法,我们可以发送我们试图检索的密钥,在这种情况下,调试级别仅用于测试和调试porpouse,以验证我是否获得了正确的映射值