ApacheCamel——Spring DSL中的引用类型常量
我正在尝试使用SpringDSL为Hazelcast主题定义一个发布操作ApacheCamel——Spring DSL中的引用类型常量,spring,apache-camel,hazelcast,Spring,Apache Camel,Hazelcast,我正在尝试使用SpringDSL为Hazelcast主题定义一个发布操作 <from uri="direct:inbound" /> <onCompletion> <log message="onCompletion:- ${body}" /> <setHeader headerName="${type:org.apache.camel.component.hazelcast.H
<from uri="direct:inbound" />
<onCompletion>
<log message="onCompletion:- ${body}" />
<setHeader headerName="${type:org.apache.camel.component.hazelcast.HazelcastConstants.OPERATION}">
<simple>${type:org.apache.camel.component.hazelcast.HazelcastConstants.PUBLISH_OPERATION}</simple>
</setHeader>
<to uri="hazelcast:topic:foo" />
</onCompletion>
<log message="${body}" />
上面的路由是有效的,但我必须使用长而简单的脚本,如${type:org.apache.camel.component.hazelcast.hazelcastcants.OPERATION}来引用常量值。有没有更简单或简短的形式
我试图为HazelcastConstants类定义一个Springbean,并通过下面的简单脚本引用它,但它不能与MethodNotFoundException方法一起工作,该方法的名称为:在bean上找不到操作
<bean id="hazelcastConstants" class="org.apache.camel.component.hazelcast.HazelcastConstants" />
... ...
<simple>${bean:hazelcastConstants.OPERATION}</simple>
如果您定义了一个bean,其中包含一个返回相关常量的方法,那么您的bean解决方案将起作用,例如:
public class ContantRetriever() {
public String getHazelCastOperation() {
return org.apache.camel.component.hazelcast.HazelcastConstants.PUBLISH_OPERATION;
}
}
您的Spring上下文:
<bean id="hazelcastConstants" class="yourpackage.ContantRetriever"/>
<simple>${bean:hazelcastConstants.getHazelCastOperation}</simple>
如果这对你没有好处的话,恐怕你会被访问常量的冗长形式所困扰